문제를 처음에 잘못 이해했다. 뿌요뿌요 마냥 두개 모이면 바로 터지는건줄 알았는데..
그게 아니라 그냥 일단 다 넣고 거기서 터트리는거였다..
게다가 멍청하게 moves 가 [1,3] 이렇게 온다고 하면 [1][0], [2][0] 이렇게 2차원 배열이니까 앞에를
바꿔줘야 하는데 [0][1][0][2] 이렇게 뽑고 있엇다.. 너무 멍청하고... 배열 왜 이상하게 접근하냐
하여튼 풀었다. 일단 1번 케이스와 2번 케이스가 문제였음... 2번은 stack에 모두 같은 인형이 들어갔을 때 이다.
1번은 print로 해놓았는데 stack[-1] == stack[0] 이 되기 때문에 문자열이 1개만 남아버리면 같아져 버린다..
다른 사람들 풀이를 한 번 봐야지 내 풀이는 솔직히 너무 더러워...
def solution(board, moves):
board_size = len(board)
answer = 0
stack = []
for num in moves:
for i in range(board_size):
if board[i][num-1] != 0:
stack.append(board[i][num-1])
board[i][num-1] = 0
break
print(stack)
answer = is_match(stack)
return answer
def is_match(stack):
answer = 0
end = 1
start = 0
empty = False
while(end <= len(stack) - 1):
empty = True
if(stack[start] == stack[end]): #다 들어갔는데 다르지 않아서 del안될수있음 1개 남으면 start -1 / end 0 이라서 같아짐..!! 와 충격
end += 1
empty = False
else :
del_point = end - start
if (del_point > 1) :
for _ in range(0,del_point):
del stack[start] #지우면 밀리니까 그 자리 그냥 지우면 됨
answer += 1
start = start - 1
end = start + 1
else:
start += 1
end += 1
if(not empty and start > 0):
del_point = end - start
for _ in range(0,del_point):
answer += 1
return answer
print(solution([[0, 0, 0, 0, 0], [0, 0, 1, 0, 3], [0, 2, 5, 0, 1], [4, 2, 4, 4, 2], [3, 5, 1, 3, 1]] ,[1, 5, 3, 5, 1, 2, 5, 1, 4, 3] )) # 1번 테스트 예제
다른 사람의 코드!
불러오는 중입니다...
def solution(board, moves):
bucket = []
answer = []
for move in moves:
for i in range(len(board)):
if board[i][move-1] > 0:
bucket.append(board[i][move-1])
board[i][move-1] = 0
if bucket[-1:] == bucket[-2:-1]: #bucket 제일 최근에 추가된 거랑 그 전꺼랑 같니?
answer += bucket[-1:] #같으면 answer에 추가
bucket = bucket[:-2] # 같으면 인덱스 -1,-2 지워 answer에 추가했으니
break
return len(answer)*2
와 이건 발상이 좋다. 다 쌓고나서 하는게 아니라 쌓으면서 나가는구나 되게 깔끔하다.
근데 궁금한건 answer에 [111] 이렇게 들어오면 2개밖에 처리를 못 하는데 어떻게 통과를 한거지..?
발상 자체는 배워야 겠다. 더하고 지우고
[Kotlin] 음양 더하기 // 두 정수 사이의 합 (0) | 2021.04.18 |
---|---|
[Kotlin] 실패율 (0) | 2021.04.18 |
[Kotlin] 정규식 (0) | 2021.04.10 |
[Kotlin] 시퀀스를 이용한 피보나치 수열 (0) | 2021.04.09 |
[Kotlin] forEach / for EachIndexed (0) | 2021.04.08 |
댓글 영역