https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=python3
전체합에서 빼가는 발상을 하면 쉽게 풀린다.
def solution(numbers):
return sum(range(10)) - sum(numbers)
https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=python3
def solution(board, moves):
N = len(board)
new_board = [[] for _ in range(N+1)] # 세로줄 기준으로
for j in range(N):
for i in range(N):
if board[N-1-i][j] != 0:
new_board[j+1].append(board[N-1-i][j])
answer = 0
basket = []
for move in moves:
if new_board[move]:
basket.append(new_board[move].pop())
if len(basket) >= 2 and basket[-1] == basket[-2]:
answer += 2
basket.pop()
basket.pop()
return answer
세로 방향으로 바꾼 뒤에 리스트에서 pop하는 방식으로 접근했는데, 그냥 있는 그대로 두고 바구니에 옮기면 값을 0으로 바꾸는 방법이 나은 것 같다.
def solution(board, moves):
N = len(board)
answer = 0
basket = []
for move in moves:
j = move - 1
for i in range(N):
if board[i][j]:
basket.append(board[i][j])
board[i][j] = 0
if len(basket) >= 2 and basket[-1] == basket[-2]:
answer += 2
basket.pop()
basket.pop()
break
return answer