2231: 분해합 (py)
2021. 1. 21. 22:58
알고리즘 저장소[22년 이전]/(브루트 포스)
문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 예제 입력 1 216 예제 출력 1 198 import sys n = int(sys.stdi..
2309번: 일곱 난쟁이(py)
2021. 1. 21. 22:31
알고리즘 저장소[22년 이전]/(브루트 포스)
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을..
NetWork : 허브 리피터 브리지 스위치 라우터
2021. 1. 17. 19:30
컴퓨터 과학 저장소/NetWork
◈ 허브(물리 계층) 여러개의 포트를 가지고 있어, 여러 장비(PC 등)을 LAN에 접속할 수 있게 해준다. 또한 리피터의 기능인 신호 증폭의 기능을 가지고 있기도 하다. ◈ 리피터(물리 계층) 노드 간의 흐르는 전기 신호를 증폭하는 중계장비이다. (단순히 신호 증폭만 하기 때문에 추가적인 기능은 아예 없다.) ◈ 브리지(데이터링크 계층) 허브처럼 여러 장비들을 연결시키고, 신호 증폭의 기능을 가지고 있다. 하지만 허브의 기능과 달리 추가적으로 이더넷의 MAC Address를 기반으로 프레임 전송 포트를 결정 할 수 있다. (허브의 단점 보완) ◈ 스위치(데이터링크 계층) 브리지와 기능이 같지만 다른점과 보완한 점이 있다. => 패킷 처리에 있어서 브리지 보다 훨씬 빠름 => 포트 수가 브리지보다 많다...
DB : ETL이란?
2021. 1. 16. 20:51
컴퓨터 과학 저장소/D.B
ETL 이란? E : 추출(Extract), T: 변환(Transform), L : 적재(Load) ▣ E : 추출 추출은, SQL에서 SELECT를 통해 데이터를 뽑아오는 것이라고 생각하면 되는 것이다. ETL의 예시로 내 갤러리에 있는 임의의 사진에 대한 이름을 들어보겠다. SELECT 2020-02-12-19-23-48-%.jpg FROM MY_GALLAY 위와 같은 쿼리문을 입력하듯 SELECT를 통해 특정 값을 추출하는 것이다. 위 예시는 이해를 위해 가져온 것이므로, 실제로는 엄청나게 많은 데이터를 추출한 것이라고 가정하자 ▣ T : 변환 변환은, 데이터를 추출한뒤 데이터 분석을 위해 이를 가공하기 위해 데이터포맷 등을 변환한다. 요구하는 데이터포맷이 YYYY-MM-DD이면, 이 형식에 맞게 ..

운영체제 공룡책 (Operating-System Concept) 1장
2021. 1. 10. 11:16
컴퓨터 과학 저장소/OS
1.1 운영체제가 할 일 -> 운영체제는 다른 프로그램이 유용한 작업을 할 수 있는 환경을 제공한다. -> 운영체제는 다양한 사용자를 위해 다양한 응용프로그램 간의 하드웨어 사용을 제어하고, 조정한다. [*] 사용자 관점 한 사용자가 자원을 독점하여 사용 (PC, 모니터, 마우스, 키보드 등 기기들을 함께 사용)하므로, 목표는 사용자가 수행하는 작업을 최대화하는 것이다. - 사용의 용이성 [*] 시스템 관점 "자원 할당자" 로써, 여러 가지 자원들(CPU 시간, 메모리 공간, 저장장치 공간, 입출력 장치 등) 이들을 관리자로써 어느 요청에 자원을 할당할지 결정 [*] 입출력-사용자 관점 운영체제는 제어프로그램이다. 컴퓨터의 부적절한 사용을 방지하기 위해, 입출력 장치의 제어와 작동에 관여한다. [!] 운..
Python : if__name__ == "__main__"
2021. 1. 6. 20:08
파이썬 저장소
아래와 같은 한줄의 코드를 보고 이게 무슨 의미인지, 왜 쓰는표현지 궁금해서 알아봤다. if__name__ == "__main__" 이를 알아보려면 먼저 파이썬에서의 namespace라는 개념을 알아야 한다. 파이썬은 list, string, integer, function(names)들을 모두 객체로 표현하고, name(변수명)은 그 객체에 접근하기 위해 사용한다. namepscae는 name들을 담을 수 있는 공간으로 생각하면 된다. 그리고, module에 대해서 알아보면 module은 파이썬 코드를 담고 있는 파일이다. 그리고, 그 파일에는 클래스, 함수, 변수 모음 등이 있을 수 있다. 각 모듈은 자신만의 유일한 namespace를 갖는다. 그래서 동일한 모듈에서 동일한 이름을 가지는 클래스 및 ..