![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bJDlho/btrLE3iZtU3/jndnT6hql5pk4KHN5LvrA1/img.png)
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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cS4vvm/btrLD9c3Mwg/MKyzbozY1hikwSlBH8zzV1/img.png)
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문을 이용하여 간단하게 답을 도출할 수 있다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cVo8ub/btrLDkmcodp/Za9nalIHd9ppyJKQjrxHU1/img.png)
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: 반복문을 이용하여 주어진 제품 수 만큼의 입력을 받고, 조건문을 이용하여 주어진 값과 비교한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/B0NiX/btrLwJFmJbt/XfaThabjeTEhhhkOoK2AF0/img.png)
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문을 이용하여 출력한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/CmRla/btrwapPG8tS/N7jPRFsUQQEuGGVKWSF951/img.png)
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을 더하면 구하고자 하는 답이 나온다. *..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cp5upQ/btrwgRYnwV2/4XK9lBV4iWo4VdEEP1Aar0/img.png)
1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net N = int(input()) num = 0 for _ in range(N): word = input() cnt = 0 for index in range(len(word) - 1): if word[index] != word[index + 1]: word2 = word[index + 1:] if word[index] in word[index + 1:]: cnt += 1 if cnt == 0: num += 1 print(num) *k..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b5s6vZ/btrwbrms1Em/6br05fOkilMqWEWkh9avwK/img.png)
2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net word = input() croatia_alphabet = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] for i in croatia_alphabet : word = word.replace(i, '_') print(len(word)) *key point: replace 메소드를 활용하여 입력된 문자열 안에서 croatia_alphabet 리스트가 가지는 요소를 임의의 한글자('_..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/28sx2/btrv3gx5RWa/wTaAcAJG20Kmv7KT7SfKx1/img.png)
5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net word = input() alphabet_dial_list = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] time = 0 for alphabet in word: for alphabet_dial_group in alphabet_dial_list: for alphabet_dial in alphabet_dial_group: if alphabet == alphabet_dial: time += 3 + alphabet_dial_list.index(alphabet_dial_group) print..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bAYkz2/btrvY5xFLWv/lFzBK1oL8W1S7z86oq4951/img.png)
2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net num_list = list(input().split()) sangsu_list = [int(num[::-1]) for num in num_list] print(max(sangsu_list)) *key point: 문자열 범위 선택 연산자 [::-1](=처음부터 끝까지 역순으로)을 이용하여 각 문자열을 역순으로 바꾸고, 그 문자열 들의 리스트 중 큰 값(최대값)을 출력한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/YIC5S/btrvZ4yvIL8/t73jbRH8P67vXRSHoabWBk/img.png)
1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net print(len(input().split())) *key point: split 함수를 사용하면 입력 받은 문자열을 아주 쉽게 공백을 기준으로 구분하여 나눌 수 있다. 이 때 결과로 리스트가 반환되므로 len 함수로 요소들의 수를 세어준다.
- Total
- Today
- Yesterday
- 1269
- 5597
- 백준
- 13909
- 10807
- 26069
- 25192
- 13241
- programmer
- 20920
- 4134
- 17103
- 항해 플러스
- 24313
- Programmers
- 항해+
- Wil
- Python
- 2903
- til
- 2587
- 벡준
- 25501
- 2738
- 코육대
- 24060
- 2053
- MySQL
- SQL
- 24723
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |