board
: 게임 화면의 격자의 상태가 담긴 2차원 배열
moves
: 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열
def solution(board, moves):
basket = []
answer = 0
for m in moves:
for i in range(len(board)):
if board[i][m-1]!=0:
basket.append(board[i][m-1])
board[i][m-1] = 0
if len(basket)>=2 and basket[-2] == basket[-1]:
answer +=2
del basket[-2:]
break
return answer
알고리즘 풀 때 for문을 사용하면 비효율적으로 코드를 짠 것 같은 기분이 든다 😂
participant
: 마라톤에 참여한 선수들의 이름이 담긴 배열
completion
: 완주한 선수들의 이름이 담긴 배열
import collections
def solution(participant, completion):
ans = list((collections.Counter(participant)-collections.Counter(completion)).keys())[0]
return ans
풀어서 써보면
import collections
def solution(participant, completion):
ans = collections.Counter(participant)-collections.Counter(completion)
ans = ans.keys()
ans = list(ans)[0]
return ans
어쩌다 보니 엄청 간단하게 끝난 문제 (뿌듯^___^)
answers
: 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열
def solution(answers):
ans1= [1,2,3,4,5]
ans2= [2,1,2,3,2,4,2,5]
ans3= [3,3,1,1,2,2,4,4,5,5]
score=[0,0,0]
ans=[]
for i in range(len(answers)):
if ans1[i%len(ans1)]==answers[i]:
score[0]+=1
if ans2[i%len(ans2)]==answers[i]:
score[1]+=1
if ans3[i%len(ans3)]==answers[i]:
score[2]+=1
for i in range(3):
if score[i]==max(score):
ans.append(i+1)
return ans
%len(ans1) 고민하는 데 시간이 오래 걸렸다
다른 사람들 풀이에 enumerate가 많이 등장하던데
조만간 정리해봐야겠다
array
: 배열
commands
: [i, j, k]를 원소로 가진 2차원 배열
def solution(array, commands):
ans=[]
for n in range(len(commands)):
i,j,k = commands[n][0], commands[n][1], commands[n][2]
ans.append(sorted(array[i-1:j])[k-1])
return ans
i,j,k=[1,2,3] 과 같이 바로 매핑 가능하다..! 처음 알았음
살짝 바꾼 최종 코드는 아래와 같다.
def solution(array, commands):
ans=[]
for c in commands:
i,j,k = c
ans.append(sorted(array[i-1:j])[k-1])
return ans