밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • useParams
  • 함수형 update
  • useNavigate
  • 리액트 reducer
  • 리액트 생애주기
  • AWS Regions
  • 리액트 프로젝트 만들기
  • useRef
  • Edge Locations
  • 리액트
  • DOM
  • Page Moving
  • 컴포넌트트리
  • 한입 크기로 잘라먹는 리액트
  • overflow-wrap
  • 분산저장소
  • 서비스아키텍처
  • 네이버커넥트
  • Availability Zones
  • state 끌어올리기
  • state 관리
  • 한입크기로잘라먹는리액트
  • State 합치기
  • react
  • Points of Presence
  • 리스트 조회
  • 데이터 수정
  • useState
  • API 호출
  • 수평 스케일링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비

프로그램의 편린

프로그래머스

[Lv.1][python] 크레인 인형 뽑기 게임

2022. 8. 7. 17:37
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제는 여기서 확인할 수 있다.

def solution(board, moves):
    ans_stack = []
    answer = 0
    finished = 1
    for m in moves:
        for id, row in enumerate(board):
            if row[m - 1] != 0:
                ans_stack.append(row[m - 1])
                row[m - 1] = 0
                break

    # 같은 거 터뜨리기
    while (finished != 0):
        finished = 0
        for i in range(len(ans_stack)):
            if ((i != 0) and (ans_stack[i] == ans_stack[i - 1])):
                ans_stack.pop(i)
                ans_stack.pop(i - 1)
                answer += 2
                finished = 1
                break
    return answer

for문 안에서 pop이나 remove 쓸 때 range()로 접근할 경우 i값은 list의 변화를 인지하지 못한다는 것을 알게 해준 문제이다.

그래서 원래 return 바로 위에서 break를 안 쓰고 끝까지 가도록 구현했더니, list index out of range 오류가 떴다...ㅋㅋㅋㅋㅋ

pop을 할 때마다 처음부터 다시 보도록 코드를 바꾸니까 다행히 잘 돌아갔다!

728x90

'프로그래머스' 카테고리의 다른 글

[Lv.1][python] 완주하지 못한 선수  (0) 2022.08.07
[Lv.1][python] 같은 숫자는 싫어  (0) 2022.08.07
[Lv.1][python]신고 결과 받기  (0) 2022.08.02
오픈채팅방  (0) 2022.07.01
문자열 압축  (0) 2022.07.01
    밍비
    밍비

    티스토리툴바