
문제 www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 코드 N, K = map(int,(input().split())) josephus = [i for i in range(1,N+1)] result = [] l = len(josephus) plus = K # 더해주는 값은 고정이므로 변하지 않게 따로 저장해둠 while josephus: # 1,2,3,4,5,6,7 일때 K=7일때 7을 빼야하므로 나머지 연산해서 0인경우는 7에 값을 계속 가지고 있게 만들어준다. if K % len(josephus) == 0: # K 값은 인덱스 값이 아니므..

문제 www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 코드 N = input().split('-') # 입력값을 '-'를 기준으로 입력받는다. ex) ['55', '50+40'] # 최솟값을 찾기 위해서는 '-' 이전 이후로 나눠서 연산을 해준뒤에 계산하면 최솟값이 나온다. result = [] for i in N: result.append(list(map(int,i.split('+')))) # '+'연산자로 묶인 것들은 더해 주기 위해서 리스트에 넣어..

문제 www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 코드 a = int(input()) # a의 가장 작은 생성자를 구하시오 result = 0 for i in range(a): # 0 부터 a까지 for문 돌음 result = i # 이전값 출력하기 위해서 저장해둠 str_i = str(i) # 자릿수를 쉽게 더하기 위해 문자열로 변환 for j in str_i: i += int(j) # ex) i = 198 + 1 + 9 +..

문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 코드 N, M = map(int,(input().split())) d = list(map(int, input().split())) # 카드 리스트 result = 0 Max = 0 for i in range(N-2): # 3중 for문을 돌면서 겹치지 않게 범위를 지정 for j in range(i+1,N-1): for k in range(j+1,N): if d[i]+d[j..