분류 전체보기 22

Stage_9 (기본수학2) 9020번 골드바흐의 추측

문제출처 : www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net #백준's Stage9 (기본수학) 9020번 골드바흐의 추측 # 자연수 2의 배수 N이 주어지며 4 ≤ n ≤ 10,000 # 두 소수의 합으로 N을 나타낼 수 있는 소수를 구하는 문제 # 문제풀이 아이디어 # 1. 10,000까지의 소수를 미리 구하고 (에라토스테네스의 체 이용) # 2. 소수 중 작은 수를 A, 큰수를 B라고 하면 A+B = N # 3. B를 N의 절반(N/..

[Python] input보다 sys.stdin.readline의 처리 속도가 빠른 이유는?

백준의 문제를 Python으로 풀다보면 input() 함수를 사용하는 것보다 sys.stdin.readline()으로 입력을 받으면 처리 시간이 짧아지는 것을 경험하는데요. 그 이유에 대해 생각해보고자 합니다. 먼저 sys 모듈는 무엇일까요? 일단 공식 문서에서의 설명은 아래와 같습니다. "이 모듈은 인터프리터에 의해 사용되거나 유지되는 일부 변수와 인터프리터와 강하게 상호 작용하는 함수에 대한 액세스를 제공합니다 " 다시 점프 투 파이썬에서는 "sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다." 라고 정의하고 있습니다. sys 모듈은 강제로 스크립트를 종료할 수도 있고 파이썬 모듈들이 저장된 위치등을 알 수도 있는 등 시스템을 제어할 수 있는 모듈로 생각됩..

카테고리 없음 2021.04.15

Programming에서 Class가 뭐지??!!

Class란 용어를 유투브나 강의자료에서 드문드문 얘기를 들으면서도 그 동안은 그 것에 대해 궁금했던 적이 없습니다. 그냥 막연히 내가 사용하지 않을, 혹은 내가 몰라도 기초 level의 Programming을 하는데는 전혀 문제가 될 것이 없어 보였기 때문이였지요. 그런데 "TensorFlow로 배우는 딥러닝"이란 강의를 듣다보니 Class에 대한 얕은 지식이나마 필요하게 되었습니다. 그래서 찾아보았습니다. Class가 무엇일까?? 1. Class란?? - 위키 정의 : 클래스(class)는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀이다. 객체를 정의 하기 위한 상태(멤버변수)와 메서드(함수)로 구성된다. - 쉽게 설명된 정의 : 과자(객체)를 찍어..

카테고리 없음 2021.04.13

Stage_9 (기본수학2) 4948번 베르트랑 공준

www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net #숫자 N까지 소수 개수 구하는 함수 def isPrimeBelow(N): sieve = [1] * (N+1) sieve[0] = 0 sieve[1] = 0 for i in range(2, int(N**0.5)+1): if sieve[i] == 1: for j in range(i+i, N+1, i): sieve[j] = 0 return sieve #가장 큰 숫자까지 미리 소수를 구해놓기 prime_lis..

Stage_8 (기본수학1) 1011번 Fly me to the Alpha Centauri

x와 y 사이를 우주선으로 가는데 1) s= 양끝단 거리 / v = 최고 속도 (이동거리 / 1워프) 2) 시작점에서 1부터 증가 --> 최고 속도에 이름 --> 1씩 속도 감소 (등차수열) ex) 속도 = [1, 2, 3, ...., v, 알파, v-1, v-2, ..., 2, 1] 3) 따라서 속도의 합 = v(v+1)/2 * 2 - v + 알파 *여기서 v(v+1)/2는 1부터 v까지의 합을 의미 4) 풀어서 쓰면 속도의 합(s) = v^2 + 알파 // 즉, s = v^2 + 알파 // v = s^0.5 가 된다. ex1) 거리가 120이라면, 최고 속도는 10이 되고 거리의 나머지는 20가 된다. 그런데 나머지가 19가 최고속도 10보다 크기 때문에 10, 10 이렇게 회수 2번 추가 ex2) ..