문제 출처: www.acmicpc.net/problem/13164 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net 1. 문제 접근 방식 - 입력받은 키들의 차이를 새로운 리스트로 만들어 정렬 후 N-K까지의 합을 구하면 된다. 2. 내가 푼 코드 import sys N, K = map(int, sys.stdin.readline().split()) height = list(map(int, sys.stdin.readline().split())) result = [] for i in range(1, N): re..
문제 출처: www.acmicpc.net/problem/1188 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net 1. 문제 접근 방식 - 처음에 딱히 생각이 나지 않아 경우의 수를 생각하며 일일히 적어보았다. 여기서는 최대공약수를 활용하는 것이 가장 핵심인 문제다. 2. 내가 푼 코드 import sys # 최대 공약수를 구하는 함수 def gcd(a, b): while b: a, b = b, a % b return a N, M = map(int, sys.stdin.readline().split()) # M에서 N과 M의 최대공약수 빼기 print(M - gcd(N, M)) 3. 결과 및 느낀점 - 성공! 하다가..
문제 출처: www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 1. 문제 접근 방식 - 먼저 세개의 구간으로 나누어야 했다. 그 나눠진 구간들에서 하나씩을 선택하여 3개의 값을 구하는 과정을 반복해가면서 주어진 값을 넘지 않는 최대의 값을 구하였다. 2. 내가 푼 코드 import sys N, M = map(int, sys.stdin.readline().split()) num = list(map(int, sys.stdin.rea..
문제 출처: www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 1. 문제 접근 방식 - 먼저, 하노이탑의 동작 방식을 파악하는 것이 중요하다. 첫번째 단계는 가장 밑의 판을 제외한 나머지를 중간으로 옮기고 가장 밑의 판은 마지막으로 옮긴다. 마지막으로 가운데에 있는 판들을 마지막으로 옮겨주면 끝이 난다. 2. 내가 푼 코드 import sys N = int(sys.stdin.readline()) # n개의 원판이 있을 경우 가장 밑의 원판을 제외한..