4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net while 1: n = int(input()) if n == 0: break cnt = 0 for i in range(n+1, 2*n+1): if i == 2: cnt += 1 else: for j in range(2, int(i**0.5)+1): if i % j == 0: break else: cnt += 1 print(cnt) 처음에는 위와 같은 방식으로 문제를 풀었으나 시간 초과가 발생하였다. input 함수를 sys모듈의 함수로 대체하여도 시간 초..
2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net T = int(input()) for _ in range(T): k = int(input()) n = int(input()) people = [x for x in range(1, n+1)] for _ in range(k): for i in range(1, n): people[i] += people[i-1] print(people[n-1]) *key point: 반복문을 활용한다. 0층의 사는 사람의 수를 리스트로 만든 뒤 k층까지 한층씩 올라가면서 n호에 사는 사람의 수로 계속 요소의 값을 변화시켜주었다.
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net T = int(input()) for i in range(T): H, W, N = map(int, input().split()) floor = N % H room = N // H + 1 if N % H == 0: floor = H room = N // H print(floor * 100 + room) *key point: 층수와 방번호가 붙는 규칙을 찾는다. 엘리베이터로부터의 거리가 가깝기만 하면 되므로 아래에서 위로 쌓고 다음 방 번호로 넘어가는 식..
2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net A, B, V = map(int, input().split()) if (V - B) % (A - B) == 0 : print((V - B) // (A - B)) else : print(((V - B) // (A - B)) +1) *key point: 정상에 도달하면 달팽이가 내려오지 않는다는 점에 유의하기만 하면 if문을 통해 쉽게 계산할 수 있다. *유의사항: 해당 문제는 시간 제한이 걸려 있다. 아래와 같은 반복문을 통해 코딩하게 되면 input 값이 커질 경우 시간 초과가 발생할 것이다. A, B, V = map(..
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net X = int(input()) total = 0 start_num = 0 while X > total: start_num += 1 total += start_num dif = total - X a = 1 + dif b = start_num - dif if start_num % 2 == 1: print(f'{a}/{b}') else: print(f'{b}/{a}') *key point: (1/1) → (1/2 → 2/1) → (3/1 → 2/2 → 1/3) ... 과 같이 대각선을 이루는 분수들을 한 라인이라고 하고, 각 라인에 나타나는 가장 큰 수 를 start_num 이라고 하였다. whil..
2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net N = int(input()) room = 1 num = 1 while N > room: room += 6 * num num += 1 print(num) *key point: 문제에서 규칙을 찾는 것이 가장 중요하다. 시작점 1부터 시작하여 겹마다 6 * 1, 6 * 2, 6 * 3, ... 6 * n 씩 방을 가지고 있다. 이를 활용하면 while문을 이용하여 간단하게 답을 도출할 수 있다.
25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net X = int(input()) N = int(input()) total = 0 for i in range(N): a, b = map(int, input().split()) total += a * b if total == X: print("Yes") else: print("No") *key point: 반복문을 이용하여 주어진 제품 수 만큼의 입력을 받고, 조건문을 이용하여 주어진 값과 비교한다.
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net standard = [1, 1, 2, 2, 2, 8] found = list(map(int, input().split())) for i in range(6): print(standard[i]-found[i], end=' ') *key point: 리스트를 이용하여 입력값과 정해진 값을 비교할 수 있도록 하고, for문을 이용하여 출력한다.
1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net A, B, C = map(int, input().split()) if B >= C: print(-1) else: print(A // (C - B) + 1) *key point: 노트북 1대의 생산 비용(B)이 가격(C)보다 큰 경우 당연히 절대 손익분기점이 발생할 수 없으므로 -1을 출력한다. 고정 비용(A)를 노트북 1대에 대한 순수익 (C - B)로 나눈 몫은 손익분기점이 발생하기 직전의 노트북 판매 대수이며, 이 값에 1을 더하면 구하고자 하는 답이 나온다. *..
- Total
- Today
- Yesterday
- 1269
- Python
- 24060
- Programmers
- SQL
- til
- 24723
- 4134
- 5597
- Wil
- 항해 플러스
- 13909
- 13241
- 24313
- 백준
- 2587
- 2903
- programmer
- 2738
- 10807
- 17103
- MySQL
- 25192
- 25501
- 26069
- 20920
- 2053
- 항해+
- 벡준
- 코육대
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |