[Python] 2293. 동전 1 n, k = map(int, input().split()) # 동전 종류 수 n, 목표 가치 k coins = [int(input()) for _ in range(n)] # 동전들 dp = [0 for _ in range(100001)] # dp 배열 for c in coins: dp[c] += 1 for i in range(k-c+1): dp[i+c] += dp[i] print(dp[k]) Algorithm/Baekjoon 2021.10.02
[Python] 1244. 최대 상금 def recur(cnt, n): global answer if cnt == n: # n만큼 바꿔줬다면 temp = ''.join(board) # 문자열로 바꿔주기 if answer < temp: # answer에 저장되어있는 값보다 크다면 갱신 answer = temp return for i in range(len_b): for j in range(i+1, len_b): # 현재 자리(i)의 다음자리부터 비교 board[i], board[j] = board[j], board[i] # 바꾸기 temp = ''.join(board) # 문자열로 바꿔 if visited.get((temp, cnt), 1): # 중복 아니라면 visited[(temp, cnt)] = 0 # visited에 저장 recur(c.. Algorithm/SW Expert Academy 2021.10.01
[Python] 5188. 최소합 # 방향 벡터 dx = [1, 0] dy = [0, 1] # 오른쪽 아래까지 이동하는 함수 ! def gogo(x, y, total): global answer if answer < total: # 이미 합이 크다면 가볼 필요 없어 return if x == y == n-1: # 오른쪽 아래까지 왔다면 if total < answer: # 지금까지 지나온 길의 합이 answer에 들어있는 값보다 작은 경우 갱신 answer = total return for i in range(2): # 오른쪽, 아래 이동 nx = x + dx[i] ny = y + dy[i] if nx Algorithm/SW Expert Academy 2021.10.01
[Python] 4366. 정식이의 은행업무 tc = int(input()) for idx in range(1, tc+1): binary = input() ternary = input() guess_bin = [] # 2진수로 만들 수 있는 경우의 수 다 넣기 for i in range(len(binary)): if binary[i] == '0': # 해당 자리 0이었으면 1로 바꾸고 10진수 변환해서 리스트에 넣기 change = binary[:i] + '1' + binary[i+1:] guess_bin.append(int(change, 2)) else: # 해당 자리 1이었으면 0로 바꾸고 10진수 변환해서 리스트에 넣기 change = binary[:i] + '0' + binary[i + 1:] guess_bin.append(int(chang.. Algorithm/SW Expert Academy 2021.09.30
[Python] 10726. 이진수 표현 tc = int(input()) for idx in range(1, tc+1): n, m = map(int, input().split()) # n번만큼 반복해서 조사할건데 한번이라도 0 나오면 off for i in range(n): # m의 i번째 비트가 1인지 아닌지 검사 if m & (1 Algorithm/SW Expert Academy 2021.09.30
[Python] 1242. 암호 코드 스캔 # 맨 앞 0까지 비율 하면 복잡해서 빼줌 ratio = { (2, 1, 1): 0, (2, 2, 1): 1, (1, 2, 2): 2, (4, 1, 1): 3, (1, 3, 2): 4, (2, 3, 1): 5, (1, 1, 4): 6, (3, 1, 2): 7, (2, 1, 3): 8, (1, 1, 2): 9, } tc = int(input()) for idx in range(1, tc+1): n, m = map(int, input().split()) # 세로 크기 n, 가로 크기 m arr = list(set([input() for _ in range(n)])) # 중복제거 arr = sorted(arr)[1:] # 0만 있는 배열 제거 numbers = [] # 암호 넣는 리스트 answer = 0 f.. Algorithm/SW Expert Academy 2021.09.30
[Python] 5186. 이진수2 tc = int(input()) for idx in range(1, tc+1): n = float(input()) cnt = 0 # 자리 수 count binary = '' # 2진수 저장 while n > 0: temp = n * 2 binary += str(temp)[0] # 정수부분 저장 n = temp - int(temp) # 소수점 이하 저장 cnt += 1 if cnt > 12: # 13자리 이상이면 중단 break if cnt > 12: # 13자리 이상이면 overflow 출력 print('#{} {}'.format(idx, 'overflow')) else: print('#{} {}'.format(idx, binary)) ✔︎ 소수점이 0이 될 때까지 2를 곱한다. 그렇게 2를 곱했을 때 .. Algorithm/SW Expert Academy 2021.09.30
[Python] 5185. 이진수 # 16진수 -> 2진수 def hex_to_bin(hexa): binary = '' for i in hexa: x = int(i, 16) # 10진수 변환 temp = '' # 10진수 -> 2진수 변환 for _ in range(4): x, n = divmod(x, 2) temp = str(n) + temp binary += temp return binary def hex_to_bin2(n, hexa): x = int(hexa, 16) for j in range(n-1, -1, -1): if x & (2 ** j) == 0: print(0, end='') else: print(1, end='') print() tc = int(input()) for idx in range(1, tc+1): n, hex.. Algorithm/SW Expert Academy 2021.09.30
[Python] 9495. 스티커 tc = int(input()) for _ in range(tc): n = int(input()) # 한 라인의 스티커 개수 dp = [list(map(int, input().split())) for _ in range(2)] # 주어진 스티커 배열 if n > 1: dp[0][1] += dp[1][0] # 점화식에 i-2가 있기때문에 처음 값은 직접 더해준다. (현재자리의 왼쪽 대각선자리) dp[1][1] += dp[0][0] for i in range(2, n): # 선택할 수 있는 두 자리에 있는 점수 중, 큰 점수와 현재 스티커와 더해주기 dp[0][i] += max(dp[1][i-2], dp[1][i-1]) dp[1][i] += max(dp[0][i-2], dp[0][i-1]) print(max.. Algorithm/Baekjoon 2021.09.30
[Python] 1240. 단순 2진 암호코드 code = { '0001101': 0, '0011001': 1, '0010011': 2, '0111101': 3, '0100011': 4, '0110001': 5, '0101111': 6, '0111011': 7, '0110111': 8, '0001011': 9, } tc = int(input()) for idx in range(1, tc+1): n, m = map(int, input().split()) # 배열 받아오기 arr = [] binary = '' for n in range(n): temp = input() arr.append(temp) if not binary and '1' in temp: # 2진수가 있는 배열 저장 binary = temp p = m - binary[::-1].index.. Algorithm/SW Expert Academy 2021.09.29