처음엔 시간 초과가 나왔다. 그래서 위의 이중 for문 내에서 조건을 걸어 모두 처리하려 했고 성공했다.
def solution(board, moves):
answer = 0
a=[] #바구니 배열
cnt=0 #1개도 꺼내지 않는 경우
for i in moves:
for j in range(len(board[i-1])):
if board[j][i-1]==0: #꺼내려는 칸이 비어있을 때
if j==len(board[0])-1:
cnt+=1 #꺼내려는 마지막 칸이 비어있을 떄
continue #꺼내려는 칸이 비어있을 때 continue
else:
a.append(board[j][i-1]) #케릭터가 있으면 바구니에 담기
board[j][i-1]=0 #해당 배열 값은 0으로 바꿔줘서 다시 선택이 안되게끔 함.
if len(a)==1:
break
elif a[-1]==a[-2]: #두 숫자가 같으면
if len(a)>2:
a=a[:-2]
else:
a=[] #길이에 따라 처리
break
return len(moves)-len(a)-cnt #사라진 케릭터의 개수
# s=a[:]
# print(s)
# while True:
# for i in range(len(a)-1):
# flag = True
# if a[i]==a[i+1]:
# del a[i+1]
# del a[i]
# flag = False
# break
# if flag:
# break
# print(s)
# print(a)
# return len(s)-len(a)
# while for문으로 한번더 처리를 하는 걸로 하니 시간초과 2개 났음 ㅠ.ㅠ
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 음양더하기 (0) | 2022.02.11 |
---|---|
프로그래머스 없는 숫자 더하기 (0) | 2022.02.11 |
프로그래머스 키패드 누르기(파이썬) (0) | 2022.02.10 |
프로그래머스 신규아이디 추천(파이썬) (0) | 2022.02.10 |
프로그래머스 소수찾기(파이썬) (0) | 2022.02.10 |