ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค [lv2] ๋ฐฉ๋ฌธ๊ธธ์ด ํŒŒ์ด์ฌ

2021. 8. 29. 21:47ใ†๐Ÿ”ฑ Algorithm

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฐฉ๋ฌธ ๊ธธ์ด

 

programmers.co.kr

๐Ÿ’ป   ์ฝ”๋“œ

def solution(dirs):
    result = [0, 0]
    route = {}
    dir_dict = {
        "U": [0, 1],
        "D": [0, -1],
        "L": [-1, 0],
        "R": [1, 0],
    }

    for dir in dirs:
        if (-5 <= result[0] + dir_dict[dir][0] <= 5) and (-5 <= result[1] + dir_dict[dir][1] <= 5):
            new_x = result[0] + dir_dict[dir][0]
            new_y = result[1] + dir_dict[dir][1]

            route[str(result[0]) + str(result[1]) + str(new_x) + str(new_y)] = 1
            route[str(new_x) + str(new_y) + str(result[0]) + str(result[1])] = 1

            result[0] = new_x
            result[1] = new_y

    return len(route) // 2

 

 

โœ…   ํ’€์ด

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€

1) ์ด๋ฏธ ์™”๋˜ ๊ฒฝ๋กœ๋ฅผ ๋˜ ์นด์šดํŒ… ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ,

2) ํ•œ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์™”๋˜ ๋ฐฉํ–ฅ๊ณผ ๊ฐ”๋˜ ๋ฐฉํ–ฅ์„ ๋™์ผํ•˜๊ฒŒ ์นด์šดํŒ… ํ•  ๊ฒƒ

 

ํŒŒ์ด์ฌ์—์„œ ๋™์ผํ•œ ๊ฐ’์„ ํ•˜๋‚˜๋กœ ์นด์šดํŒ… ํ•˜๋Š” ์ž๋ฃŒํ˜•์‹์€ ๋”•์…”๋„ˆ๋ฆฌ์™€ set ๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— route ๋ผ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ๋‘๊ฐ€์ง€ ๋ฐฉํ–ฅ(์˜ค๋Š” ๋ฐฉํ–ฅ, ๊ฐ€๋Š” ๋ฐฉํ–ฅ) ์„ ์ €์žฅํ•œ๋‹ค. 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋™์ผํ•œ ๊ฒฝ๋กœ๋ฅผ  ๋ช‡๋ฒˆ์ด๋‚˜ ์™”๋‹ค ๊ฐ”๋‹คํ•˜๋”๋ผ๋„ 1ํšŒ๋กœ ์นด์šดํŒ… ํ•œ๋‹ค.

 

 

์‚ฌ์‹ค์ƒ dictionary ๊ฐ€ ์•„๋‹Œ set ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์˜ณ์€ ์ ‘๊ทผ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฆฌํŒฉํ† ๋ง ํ•ด๋ด์•ผ๊ฒ ๋‹ค.