[Programmers] 크레인 인형뽑기 게임
·
💯 CodingTest/Programmers
▶ 문제 : 더보기 https://programmers.co.kr/learn/courses/30/lessons/64061 ▶ 코드 : from collections import deque def solution(board, moves): count = 0 st = deque() for num in moves: for i in range(len(board)): item = board[i][num-1] if item == 0: continue else: if len(st) != 0: recent_item = st.popleft() if recent_item == item: count += 2 else: st.appendleft(recent_item) st.appendleft(item) else: st.app..
[Programmers] 키패드 누르기
·
💯 CodingTest/Programmers
▶ 문제 : 더보기 https://programmers.co.kr/learn/courses/30/lessons/67256 ▶ 코드 : keyPad = { '1' : (0,0), '2' : (0,1), '3' : (0,2), '4' : (1,0), '5' : (1,1), '6' : (1,2), '7' : (2,0), '8' : (2,1), '9' : (2,2), '*' : (3,0), '0' : (3,1), '#' : (3,2) } def solution(numbers, hand): answer='' left = '*' right = '#' for num in numbers: if num in [1, 4, 7] : answer += 'L' left = str(num) elif num in [3, 6, 9]..
[BaekJoon] 1620 나는야 포켓몬 마스터 이다솜
·
💯 CodingTest/BaekJoon
▶ 문제 : 더보기 https://www.acmicpc.net/problem/1620 ▶ 코드 : n, m = map(int, input().split()) numToName = {} nameToNum = {} question = [] nums = ['0','1','2','3','4','5','6','7','8','9'] for i in range(1,n+1): data = input() numToName[i] = data nameToNum[data.lower()] = i for i in range(m): question.append(input().lower()) for q in question: if q[0] in nums: print(numToName[int(q)]) else: print(nameTo..
[BaekJoon] 1541 잃어버린 괄호
·
💯 CodingTest/BaekJoon
▶ 문제 : 더보기 https://www.acmicpc.net/problem/1541 ▶ 코드 : expr = input() tempExpr = '' tempNum = '' # + 기호를 포함하면 덧셈을 해주는 함수 def exprSum(strData): if '+' in strData: for i in range(len(strData)): if strData[i] == '+': return str(int(strData[:i]) + int(strData[i+1:])) return strData # 우선적으로 식에 포함된 + 기호를 이용한 덧셈을 진행 식에서 + 기호가 있는 부분은 모두 더해줌 for i in range(len(expr)): if i == len(expr) - 1: tempNum += ex..
[BaekJoon] 1463 1로 만들기
·
💯 CodingTest/BaekJoon
▶ 문제 : 더보기 https://www.acmicpc.net/problem/1463 ▶ 코드 : num = int(input()) data = {1:0} i = 2 while True: if i == num+1: break data[i] = data[i-1] + 1 if i % 3 == 0: data[i] = min(data[i], data[i//3] + 1) if i % 2 == 0: data[i] = min(data[i], data[i//2] + 1) i += 1 print(data[num]) ▶ 문제 풀이 : 1. DP 방식을 사용해서 풀이하는 문제이다. 2. 초기 값 1을 제외한 이후 숫자(2) 부터 반복을 진행한다. 3. 해당 숫자에서 1을 뺀 경우(이 경우는 이전 결과값에 1을 더함) 3으로..