[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Lv1] ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ / Python

๐Ÿ“š Problem Solving/Programmers

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ

[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"

programmers.co.kr

import sys

input = sys.stdin.readline
numbers = list(map(int, input().split()))
hand = input()


def solution(numbers, hand):
    lastL, lastR = 10, 12
    answer = ""
    for n in numbers:
        if n in [1, 4, 7]:
            lastL = n
            answer += "L"
        elif n in [3, 6, 9]:
            lastR = n
            answer += "R"
        else:
            n = 11 if n == 0 else n
            absL = abs(n - lastL)
            absR = abs(n - lastR)
            if sum(divmod(absL, 3)) > sum(divmod(absR, 3)):
                lastR = n
                answer += "R"
            elif sum(divmod(absL, 3)) < sum(divmod(absR, 3)):
                lastL = n
                answer += "L"
            else:
                if hand == "left":
                    lastL = n
                    answer += "L"
                else:
                    lastR = n
                    answer += "R"
    return answer


print(solution(numbers, hand))

 

ํ•ด์„ค

์ด ๋ฌธ์ œ์—์„œ ์ƒ๊ฐํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์€ ํ‚คํŒจ๋“œ์˜ ๊ฐ€์šด๋ฐ ๋ผ์ธ์ด๋‹ค.

1) ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š” ์ˆซ์ž์™€ ์™ผ์† ์—„์ง€์†๊ฐ€๋ฝ์— ์œ„์น˜ํ•œ ๋ถ€๋ถ„

2) ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š” ์ˆซ์ž์™€ ์˜ค๋ฅธ์† ์—„์ง€์†๊ฐ€๋ฝ์— ์œ„์น˜ํ•œ ๋ถ€๋ถ„

 

๋‘ ์ˆซ์ž ์ฐจ์ด์˜ ์ ˆ๋Œ“๊ฐ’์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€์˜ ํ•ฉ์ด ์›๋ž˜ ์œ„์น˜์—์„œ ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š” ์ˆซ์ž๊นŒ์ง€ ์ด๋™ํ•ด์•ผํ•˜๋Š” ์นธ์ด๋‹ค.