ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 15722 ๋น™๊ธ€๋น™๊ธ€ ์Šค๋„ค์ผ with Python
    PS 2022. 2. 27. 22:03
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 15722 ๋น™๊ธ€๋น™๊ธ€ ์Šค๋„ค์ผ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๋‹ฌํŒฝ์ด๋Š” ์›์ ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ 1์ดˆ์— ํ•œ ์นธ ์”ฉ, ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์›€์ง์ธ๋‹ค.

    2. 1์ดˆ์ผ ๋•Œ ๋‹ฌํŒฝ์ด์˜ ์œ„์น˜๋Š” (0, 1)์ด๋‹ค.

    3. ๋ช‡ ์ดˆ๊ฐ€ ์ง€๋‚ฌ๋Š”์ง€๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ํ˜„์žฌ ๋‹ฌํŒฝ์ด์˜ ์œ„์น˜๋ฅผ ์ขŒํ‘œ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ

    4. ๋‹ฌํŒฝ์ด๊ฐ€ ์›€์ง์ธ ์‹œ๊ฐ„์ด n์ดˆ๋กœ ์ฃผ์–ด์ง„๋‹ค. (0 โ‰ค n โ‰ค 1000, n์€ 0์ด์ƒ์˜ ์ •์ˆ˜)

    5. ๊ตฌํ˜„, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    
    def solve():
        n = int(stdin.readline())
        pos = [0, 0]
        mode, length = 0, 1
        cnt = 0
        while 1:
            for i in range(2):
                for _ in range(2):
                    # Add
                    if i == 0:
                        if mode == 0:
                            for _ in range(length):
                                pos[1] += 1
                                cnt += 1
                                if n == cnt:
                                    return pos
                        else:
                            for _ in range(length):
                                pos[0] += 1
                                cnt += 1
                                if n == cnt:
                                    return pos
                    # Sub
                    if i == 1:
                        if mode == 0:
                            for _ in range(length):
                                pos[1] -= 1
                                cnt += 1
                                if n == cnt:
                                    return pos
                        else:
                            for _ in range(length):
                                pos[0] -= 1
                                cnt += 1
                                if n == cnt:
                                    return pos
    
                    mode = 1 if mode == 0 else 0
    
                length += 1
    
    
    print(*solve())

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    9

    ์‹คํ–‰๊ฒฐ๊ณผ

    -1 2

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๋‹ฌํŒฝ์ด์˜ ์ฒซ ์œ„์น˜๋ฅผ [0, 0]์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.

    2. cnt ๊ฐ€ n ๊ณผ ๊ฐ™์•„์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์„ ํ•  ๊ฒƒ.

    3. i๊ฐ€ 0์ผ ๋•Œ๋Š” ์ขŒํ‘œ ๊ฐ’์„ ๋”ํ•ด์ฃผ๊ณ , 1์ผ ๋•Œ๋Š” ์ขŒํ‘œ ๊ฐ’์„ ๋นผ์ค„ ๊ฒƒ.

    4. ์ขŒํ‘œ๋ฅผ ๋”ํ•ด์ฃผ๊ฑฐ๋‚˜ ๋นผ์ค„ ๋•Œ, cnt ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , i ๋ฅผ ์ˆœํšŒํ•  ๋•Œ๋งˆ๋‹ค length๋ฅผ ๋Š˜๋ ค์ค€๋‹ค
      ๋Š˜๋ ค์ค€ length ๋Š” ์ขŒํ‘œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋นผ์ฃผ๊ณ  ๋”ํ•ด์ค„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜

    5. mode ๋Š” 1 ์ผ ๋•Œ 0์œผ๋กœ, 0์ผ ๋•Œ 1๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š”๋ฐ, x, y ๋ฅผ ๊ฐ๊ฐ ๋”ํ•˜๊ณ  ๋นผ์ค„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ.

    6. ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ขŒํ‘œ๋ฅผ ๋นผ์ฃผ๊ณ  ๋”ํ•ด์ฃผ๋Š” ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€, cnt๊ฐ€ n๊ณผ ๊ฐ™์•„์ง€๋ฉด ์ขŒํ‘œ pos ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•ด์ฃผ๋Š” ๋Œ€๋กœ ๋‹ฌํŒฝ์ด๊ฐ€ ์›€์ง์ด๋Š” ๋ฐฉํ–ฅ์„ ์ž˜ ์ƒ๊ฐํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    2. ์Šค์Šค๋กœ ๊ตฌํ˜„ ์‹ค๋ ฅ์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.