![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bMw53d/btrTqEwR8Dx/hMxPcKyl7OwXsqhLMjELpK/img.png)
문제 링크 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): if i in case: continue if len(case) != 0: if i < case[-1]: continue case.append(i) recursive() case.pop(..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cffk9Z/btrThfLtLJZ/e8Bk2APhBzdxv4qlI0tMtK/img.png)
문제 링크 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): if i in case: continue case.append(i) recursive() case.pop() recursive() *key point: 재귀함수를 이용하여 문제를 푼다. ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cJQK9U/btrTgHOte2i/jQji7Sb4JuipGJvSvjvpUk/img.png)
문제 링크 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 문제 풀이 def countNum(target, num): cnt = 0 while target > 0: target //= num cnt += target return cnt n, k = map(int, input().split()) count_two = countNum(n, 2) - countNum(k, 2) - countNum(n - k, 2) count_five = countNum(n, 5) - countNum(k, 5) - countNum(n - k, 5) print(min(count_two, coun..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/XkHnI/btrTgB7SIOm/RH2XzW3ccEHdGfJ6UPuwg0/img.png)
문제 링크 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 import math n = int(input()) n_factorial = list(map(int, list(str(math.factorial(n))))) cnt = 0 index = len(n_factorial) - 1 while index != 0 : if n_factorial[index] == 0: cnt += 1 index -= 1 else: break; print(cnt) *key point: factorial을 계산해 준 뒤 각 자리수를 리스트에 넣어 반복문으로 해결한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tlnjb/btrS5gQnNmx/hPYgKY82HsPFWG3yeFe8AK/img.png)
문제 링크 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 문제 풀이 import math t = int(input()) for i in range(t): n = int(input()) type_list = [] type_count = [] for j in range(n): cloth, type = input().split() if type not in type_list: type_list.append(type) ty..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yrsGK/btrSZK42WAa/7PyfTcQpVjlnNr6PrWEZGk/img.png)
문제 링크 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 문제 풀이 import math t = int(input()) for i in range(t): n, m = map(int, input().split()) print(math.factorial(m)//(math.factorial(m-n)*math.factorial(n))) *key point: 조합(Combination)에 대한 이해가 있으면 쉽게 풀 수 있다. 주어진 문제는 M개 중에 N를 고르는 경우의 수 이으로 mCn을 구해준다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bmClJ6/btrSJmDqsl2/U6kulX7D0pTCnuvtSmRY60/img.png)
문제 링크 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 문제 풀이 import math n = int(input()) diameter = list(map(int, input().split())) for i in range(1, n): gcd = math.gcd(diameter[0], diameter[i]) print(f'{diameter[0]//gcd}/{diameter[i]//gcd}') *key point: 첫번째 링과 각 링의 반지름의 최소공배수를 구하여 나누어주면 출력해야 할 기약 분수의 분모, 분자를 구할 수 있다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cmvpZX/btrSsQMdnBX/KZx0dPF3gqarYdkvfixZJ1/img.png)
문제 링크 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 풀이 import sys N = int(sys.stdin.readline()) card_list = list(map(int, sys.stdin.readline().split())) M = int(sys.stdin.readline()) check_list = list(map(int, sys.stdin.readline().split())) card_dict = {} for i in range(len(card_list)):..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bIe2f0/btrSvAm7rAw/1oDqKSkPkhn3eePtgYoWuk/img.png)
문제 링크 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 풀이 N, M = map(int, input().split()) start = [] cnt = [] for _ in range(N): start.append(input()) for a in range(N - 7): for b in range(M - 7): index1 = 0 index2 = 0 for i in range(a, a + 8): for j in range(b, b + 8): if (i + j) % 2 == 0: if start[..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/y4cQT/btrSplLtLlD/Wvc8Djr95NfNyQvwTJdYUk/img.png)
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 def solution(id_pw, db): if id_pw in db: return "login" for data in db: if data[0] == id_pw[0]: return "wrong pw" return "fail" *key point: if문과 for문을 적절히 활용하여 주어진 조건에 따라 적합한 return 값을 가지도록 한다.
- Total
- Today
- Yesterday
- Programmers
- 10807
- 항해 플러스
- 24313
- 24723
- 1269
- programmer
- 13909
- 17103
- 2587
- 2903
- 25501
- 백준
- 5597
- 벡준
- 코육대
- 13241
- 항해+
- 20920
- Wil
- 24060
- 2738
- til
- 25192
- 2053
- 26069
- 4134
- Python
- MySQL
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |