-
[๋ฐฑ์ค] 15722 ๋น๊ธ๋น๊ธ ์ค๋ค์ผ with PythonPS 2022. 2. 27. 22:03728x90๋ฐ์ํ
๐ BOJ 15722 ๋น๊ธ๋น๊ธ ์ค๋ค์ผ
๐ก ์กฐ๊ฑด
๋ฌํฝ์ด๋ ์์ ์์ ์์ํ์ฌ 1์ด์ ํ ์นธ ์ฉ, ์๊ณ๋ฐฉํฅ์ผ๋ก ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์์ง์ธ๋ค.
1์ด์ผ ๋ ๋ฌํฝ์ด์ ์์น๋ (0, 1)์ด๋ค.
๋ช ์ด๊ฐ ์ง๋ฌ๋์ง๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋, ํ์ฌ ๋ฌํฝ์ด์ ์์น๋ฅผ ์ขํ๋ก ์ถ๋ ฅํ๋ ๋ฌธ์
๋ฌํฝ์ด๊ฐ ์์ง์ธ ์๊ฐ์ด n์ด๋ก ์ฃผ์ด์ง๋ค. (0 โค n โค 1000, n์ 0์ด์์ ์ ์)
๊ตฌํ, ์๋ฎฌ๋ ์ด์ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
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
โจ๏ธ ๋ฌธ์ ํ์ด
๋ฌํฝ์ด์ ์ฒซ ์์น๋ฅผ [0, 0]์ผ๋ก ์ง์ ํ๋ค.
cnt ๊ฐ n ๊ณผ ๊ฐ์์ง ๋๊น์ง ๋ฐ๋ณต์ ํ ๊ฒ.
i๊ฐ 0์ผ ๋๋ ์ขํ ๊ฐ์ ๋ํด์ฃผ๊ณ , 1์ผ ๋๋ ์ขํ ๊ฐ์ ๋นผ์ค ๊ฒ.
์ขํ๋ฅผ ๋ํด์ฃผ๊ฑฐ๋ ๋นผ์ค ๋, cnt ๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค๊ณ , i ๋ฅผ ์ํํ ๋๋ง๋ค length๋ฅผ ๋๋ ค์ค๋ค
๋๋ ค์ค length ๋ ์ขํ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋นผ์ฃผ๊ณ ๋ํด์ค ๋ ์ฌ์ฉํ๋ ๋ณ์mode ๋ 1 ์ผ ๋ 0์ผ๋ก, 0์ผ ๋ 1๋ก ๋ณ๊ฒฝํด์ฃผ๋๋ฐ, x, y ๋ฅผ ๊ฐ๊ฐ ๋ํ๊ณ ๋นผ์ค ๋ ์ฌ์ฉํ๋ ๊ฒ.
ํจ์๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ขํ๋ฅผ ๋นผ์ฃผ๊ณ ๋ํด์ฃผ๋ ์์ ์ ํ๋ค๊ฐ, cnt๊ฐ n๊ณผ ๊ฐ์์ง๋ฉด ์ขํ pos ๋ฅผ ๋ฆฌํดํ๋ค.
๐พ ๋๋์
- ๋ฌธ์ ์์ ์ค๋ช ํด์ฃผ๋ ๋๋ก ๋ฌํฝ์ด๊ฐ ์์ง์ด๋ ๋ฐฉํฅ์ ์ ์๊ฐํด์ ๊ตฌํํด์ผ ํฉ๋๋ค.
- ์ค์ค๋ก ๊ตฌํ ์ค๋ ฅ์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๋ ๋ฌธ์ ์์ต๋๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1342 ํ์ด์ ๋ฌธ์์ด with Python (0) 2022.03.01 [๋ฐฑ์ค] 18243 Small World Network with Python (0) 2022.03.01 [๋ฐฑ์ค] 14425 ๋ฌธ์์ด ์งํฉ with Python (0) 2022.02.27 [๋ฐฑ์ค] 11501 ์ฃผ์ with Python (0) 2022.02.24 [๋ฐฑ์ค] 10546 ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ with Python (0) 2022.02.24