본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 1단계

공원 산책

by 세용용용용 2023. 10. 6.

코딩테스트 연습 - 공원 산책 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

나의 코드

def solution(park, routes):
    answer = [0,0]
    # 이동 좌표
    move_dict = {'N':[-1,0], 'S':[1,0], 'W':[0,-1], 'E':[0,1]}

    # 공원을 좌표로 만들어준다
    park_list = []
    for i in park:
        park_list.append(list(i))
    #print(park_list)

    # 현재 위치를 찾아줌
    now_loc = []
    for i in range(len(park_list)):
        if len(now_loc) != 0:
            break
        for j in range(len(park_list[0])):
            if park_list[i][j] == 'S':
                now_loc = [i,j]
                break
    #print(now_loc)

    # 현재 위치를 설정된 경로에 맞게 이동시켜줄것임
    for i in routes:
        now_x = now_loc[0]
        now_y = now_loc[1]
        i = i.split(' ')
        #print(move_dict[i[0]])

        # 경로를 초과하거나 장애물이 있는지 확인하고
        # check가 1이면 있는것임
        check = 0
        for _ in range(int(i[1])):
            new_x = now_x + move_dict[i[0]][0]
            new_y = now_y + move_dict[i[0]][1]
            if 0<=new_x<len(park_list) and 0<=new_y<len(park_list[0]) and park_list[new_x][new_y] != 'X':
                now_x = new_x
                now_y = new_y
            else:
                check = 1
                break
        # 장애물이 없으면 경로이동
        if check == 0:
            now_loc = [now_x,now_y]
    #print(now_loc)
    answer = now_loc
    return answer
solution(["OSO",
          "OOO",
          "OXO",
          "OOO"],
                ["E 2","S 3","W 1"])

'코딩테스트 파이썬 > 파이썬 프로그래머스 1단계' 카테고리의 다른 글

주사위 게임 3  (1) 2023.10.28
정수를 나선형으로 배치하기  (0) 2023.10.26
달리기 경주  (0) 2023.10.05
덧칠하기  (0) 2023.09.24
추억 점수  (0) 2023.09.24