본문 바로가기

⏳ 알고리즘/python 알고리즘 문제 풀이

프로그래머스 - LV5. 방의 개수

문제

https://school.programmers.co.kr/learn/courses/30/lessons/49190

 

프로그래머스

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

programmers.co.kr

 

코드

def solution(arrows):
    answer = 0
    arrived = [[0, 0]]
    move = [(0,1), (1,1), (1,0), (1,-1), (0, -1), (-1, -1), (-1, 0), (-1, 1)]
    x, y = 0, 0
    for a in arrows:
        # - 처음 가는 곳 인데 
        # - 이미 가본 곳이라면? 
        # => 방의 개수 + 1
        bx, by = x, y
        x += move[a][0]
        y += move[a][1]
        if [bx, by] not in arrived and [x, y] in arrived:
            answer += 1
        else:
            arrived.append([x, y])
        
        
    return answer