[이코테] 구현 - 상하좌우

Lim seung hyun·2021년 6월 10일
0
post-thumbnail

이것이 코딩 테스트다 Ch04 구현 예제

4-1 상하좌우

문제 설명

plan에 따라 L, R, U, D로 방향으로 이동 후 최종 좌표 return

Input

N -> int : N x N 공간의 크기 N
plan -> list : 이동 계획

Output

[x, y] : 최종 좌표

Limit

1 <= N <= 100
1 <= len(plan) <= 100
Time : 1 second
Memory : 128 MB

구현 코드

Analysis

시간복잡도 : O(N)
공간복잡도 : O(1)

def solve(N, plan):
    plan2xy = {"L": [0, -1], "R": [0, 1], "U": [-1, 0], "D": [1, 0]}
    x, y = 1, 1
    for p in plan:
        dx, dy = plan2xy[p]
        if 1 <= x + dx <= N:
            x += dx
        if 1 <= y + dy <= N:
            y += dy

    return [x, y]

테스트 코드

class testSolve(unittest.TestCase):
    def testcase(self):
        self.assertEqual(solve(5, ["R", "R", "R", "U", "D", "D"]), 
        	[3, 4])


unittest.main()
profile
I love to make my own things!!

0개의 댓글