본문 바로가기

Programming [Python]

(411)
#320 백준 파이썬 [14888] 연산자 끼워넣기 https://www.acmicpc.net/problem/14888 SOLUTION permutation(순열 함수)로 연산자 셋을 구성해준다. 예를 들어, [+ + - * *], [+ + * - *] ... 등으로 현재 있는 연산자를 숫자로 치환(1, 2, 3, 4)하여 순열을 구성해준 뒤, 각각의 숫자 사이에 연산자를 대입해주면 된다. PYTHON CODE from itertools import permutations #순열 함수 N = int(input()) A = list(map(int, input().split())) plus, minus, multiple, division = map(int, input().split()) #각각의 연산자를 모두 입력 operation_list = [] oper..
#319 백준 파이썬 [14501] 퇴사 https://www.acmicpc.net/problem/14501 SOLUTION 다이나믹 프로그래밍을 이용하여 풀이한다. 해법은 뒤에서부터 푸는 것 i번 째 날부터 ~ 마지막 날까지 낼 수 있는 최대 이윤은 1) 현재 일의 이윤 + 현재 일이 필요한 day 뒤의 이윤 2) 현재 일을 하지 않고 넘어갈 때의 이윤 (i+1의 이윤) 1)과 2) 중 큰 값이 현재의 maximum pay가 된다. 식으로 표현하자면 다음과 같다. max_pay[i] = max(pay + max_pay[i + day], max_pay[i+1]) PYTHON CODE N = int(input()) work_pay = [] max_pay = [0] * N for _ in range(N): work_pay.append(list(ma..
#318 백준 파이썬 [9465] 스티커 https://www.acmicpc.net/problem/9465 SOLUTION 2개의 행 뿐이므로 i번째 열의 최댓값은 다음과 같다. 1) 다른 행, 바로 이전 열의 최댓값 + 현재 스티커 2) 다른 행, 2번째 전 열의 최댓값 + 현재 스티커 PYTHON CODE T = int(input()) for _ in range(T): n = int(input()) sticker = [] sticker.append(list(map(int, input().split()))) sticker.append(list(map(int, input().split()))) max_sticker = [[0 for _ in range(n)] for _ in range(2)] #0번부터 차례대로 최대 값 저장 max_sticke..
#317 백준 파이썬 [10974] 모든 순열 https://www.acmicpc.net/problem/10974 PYTHON CODE from itertools import permutations #순열 함수 N = int(input()) N_list = [i for i in range(1, N+1)] for numbers in list(permutations(N_list)): for num in numbers: print(num, end=' ') print()
#316 백준 파이썬 [18245] 이상한 나라의 암호 https://www.acmicpc.net/problem/18245 PYTHON CODE string = str(input()) line = 2 while string != "Was it a cat I saw?": for i in range(0, len(string), line): print(string[i], end = '') print() line += 1 string = str(input())
#315 백준 파이썬 [2309] 일곱 난쟁이 https://www.acmicpc.net/problem/2309 PYTHON CODE dwarf = [] answer = False for _ in range(9): dwarf.append(int(input())) for i in range(8): if answer: #답이 이미 나온 경우 break for j in range(i+1, 9): if sum(dwarf) - dwarf[i] - dwarf[j] == 100: dwarf.pop(i) dwarf.pop(j-1) for k in sorted(dwarf): print(k) answer = True #답이 나옴 break
#314 백준 파이썬 [18247] 겨울왕국 티켓 예매 https://www.acmicpc.net/problem/18247 PYTHON CODE T = int(input()) for _ in range(T): N, M = map(int, input().split()) if M < 4 or N < 12: #L4자리가 없는 경우 print(-1) else: print(11 * M + 4)
#313 백준 파이썬 [14652] 나는 행복합니다~ https://www.acmicpc.net/problem/14652 PYTHON CODE N, M, K = map(int, input().split()) n = K // M m = K % M print(n, m)