def solution(board, moves):
answer = 0
box = []
li = [[0]*len(board[0]) for _ in range(len(board))]
# 열별로 나열
for i in range(len(board[0])) :
for k in range(len(board)) :
li[i][k] = board[k][i]
for move in moves :
while (li[move-1][0] == 0) :
li[move-1].pop(0)
if len(box) >= 1 and box[-1] == li[move-1][0] :
del box[-1]
del li[move-1][0]
answer += 2
else :
box.append(li[move-1][0])
del li[move-1][0]
return answer
IndexError: list index out of range
별 것도 아닌 오류 잡는다고 한 시간은 쓴 것 같음 ㅋㅋ..하
출력할 땐 잘 나오면서
삭제하려니까 도대체 인덱스 오류가 왜나는지 모르겠는거임 .....ㅜㅜㅜ
그래서 그냥 레플릿에서 코드 실행해서 어디가 문젠지 찾았다
ide 안 쓰는 연습하고 있는데 이건 ... 도저히 .... 해결 못 할 것 같아서 그냥 돌려버림 ㅎ
def solution(board, moves):
answer = 0
box = []
li = [[0]*len(board[0]) for _ in range(len(board))]
# 열별로 나열
for i in range(len(board[0])) :
for k in range(len(board)) :
li[i][k] = board[k][i]
for move in moves :
if len(li[move-1]) == 0 :
continue
while (li[move-1][0] == 0) :
li[move-1].pop(0)
if len(box) >= 1 and box[-1] == li[move-1][0] :
del box[-1]
del li[move-1][0]
answer += 2
else :
box.append(li[move-1][0])
del li[move-1][0]
return answer
알고 보니까 이미 li[move-1] 에 요소 다 삭제해서 없는 상태인데
while 조건문에서 인덱스 지정해버리니까 오류거였음 ..
그래서 li[move-1] 요소 개수 검사해주는 코드 한 줄 넣으니까 해결됐다 휴
사실 이 문제 재작년인가 알고리즘의 ㅇ 자도 모를 때 지나가다 본 문제같은데
그땐 이거 보고 이게 도대체 뭐야..? 이런 걸 어떻게 코드로..?
했었는데 지금 그래도 혼자 힘으로 풀었다는 게 신기할 뿐 ,, 암튼 해결 ^-^
'알고리즘' 카테고리의 다른 글
[프로그래머스 Lv1 - 2018 KAKAO BLIND RECRUITMENT] 다트 게임 (Python) (0) | 2022.07.01 |
---|---|
[프로그래머스 Lv1 - 2018 KAKAO BLIND RECRUITMENT] 비밀지도 (Python) (0) | 2022.07.01 |
[프로그래머스 Lv1 - 2020 카카오 인턴십] 키패드 누르기 (Python) (0) | 2022.06.30 |
[프로그래머스 Lv1 - 2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어 (Python) (0) | 2022.06.30 |
[프로그래머스 Lv1 - 2019 KAKAO BLIND RECRUITMENT] 실패율 (Python) (0) | 2022.06.30 |