We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 2502๋ฒˆ: ๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด

Redddy 2022. 5. 26. 22:26

๐Ÿงฉ๋ฌธ์ œ ํ•ด์„

๋–ก ํ•˜๋‚˜ ์ฃผ๋ฉด ์•ˆ์žก์•„ ๋จน์ง€!~ ์—์„œ ์•„์ด๋””์–ด๋ฅผ ์–ป์€ ๋ฌธ์ œ ๊ฐ™๋‹ค ใ…‹ใ…Žใ…Ž
๋ฌธ์ œ๊ฐ€ ์žฌ๋ฐŒ์—ˆ๋‹ค.
ํ˜ธ๋ž‘์ด๊ฐ€ ์˜ค๋Š˜ ๋จน์„ ๋–ก์˜ ๊ฐฏ์ˆ˜๋Š” 1์ผ์ „ํ•˜๊ณ  2์ผ์ „์— ์–ป์€ ๋–ก์„ ๋”ํ•œ ๊ฐฏ์ˆ˜์ด๋‹ค. 
์ด ๊ธ€์„ ๋ณด๋ฉด ๋ฐ”๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด๋ผ๋Š” ๊ฒƒ์„ ๋ˆˆ์น˜์ฑ˜์„ ๊ฒƒ์ด๋‹ค.
n๋ฒˆ์งธ ๋‚  ๋จน์€ ๋–ก์— ๊ฐฏ์ˆ˜ k๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ฒซ์งธ๋‚ ํ•˜๊ณ  ๋‘˜์งธ๋‚ ์— ๋จน์€ ๋–ก์— ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๐Ÿ“• ํ’€์ด

ํ”ผ๋ณด๋‚˜์น˜๋ผ๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ•˜์ž ๋ฌธ์ œ ํ’€๊ธฐ๋Š” ์‰ฌ์›Œ์กŒ๋‹ค.
์ฒซ์งธ๋‚ ์— ๋จน์€ ๋–ก์˜ ๊ฐฏ์ˆ˜๊ฐ€ a, ๋‘˜์งธ๋‚ ์— ๋จน์€ ๋–ก์˜ ๊ฐฏ์ˆ˜๋ฅผ b๋ผ๊ณ  ํ•  ๋•Œ ์•„๋ž˜์˜ ํ‘œ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

๋‚ ์งœ 1 2 3 4 5 6
๋–ก์˜ ๊ฐฏ์ˆ˜ a b a+b a+2b 2a+3b 3a+5b

์ฒซ์งธ๋‚ ์—๋Š” a๊ฐœ, ๋‘˜์งธ๋‚ ์—๋Š” b๊ฐœ, ์…‹์งธ๋‚ ์—๋Š” ์ฒซ์งธ๋‚ ๊ณผ ๋‘˜์งธ๋‚ ์„ ๋”ํ•œ a+b๊ฐœ๋ฅผ ๋จน์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค์งธ๋‚ ์—๋Š” ๋‘˜์งธ๋‚ ๊ณผ ์…‹์งธ๋‚ ์„ ๋”ํ•œ a + 2b๊ฐœ๋ฅผ ๋จน์—ˆ๋‹ค.

 

์œ„ ํ‘œ๋ฅผ ์‚ด์ง ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ˆ˜์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๋‚ ์งœ 1 2 3 4 5 6
๋–ก์˜ ๊ฐฏ์ˆ˜ 1a + 0b 0a + 1b 1a+1b 1a+2b 2a+3b 3a+5b

 

์ฆ‰ ์ฒซ์งธ๋‚ ์—๋Š” (1,0) ๋‘˜์งธ๋‚ ์—๋Š” (0,1) ๊ฐ’์œผ๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ์ด๋ฃฐ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด n๋ฒˆ์งธ ๋‚ ์˜ a์™€ b์˜ ๊ณ„์ˆ˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ณ , a์™€ b์˜ ๊ฐ’์€ ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐพ์•„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค!

 

๐Ÿ’ป ์ฝ”๋“œ

D, K = map(int, input().split())

# ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ dpํ…Œ์ด๋ธ”
d = [0] * 31 

d[1] = (1,0) # ์ฒซ์งธ๋‚  ๋–ก์˜ ๊ฐฏ์ˆ˜ 1a + b
d[2] = (0,1) # ๋‘˜์งธ๋‚  ๋–ก์˜ ๊ฐฏ์ˆ˜ 1b + 0a
for i in range(3, D+1): # D๋ฒˆ์งธ๋‚  ๋–ก์˜ ๊ฐฏ์ˆ˜
    d[i] = (d[i-1][0] + d[i-2][0], d[i-1][1] + d[i-2][1])

# D๋ฒˆ์งธ ๋‚ ์˜ a์™€ b์˜ ๊ณ„์ˆ˜ 
a = d[D][0]
b = d[D][1]

n,m = 1,1 # a์™€ b์˜ ๊ฐ’
# ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜
while True:
    if a*n + b*m == K: # a์™€ b์˜ ๊ฐ’์„ ์ฐพ์•˜๋‹ค๋ฉด ์ถœ๋ ฅ
        print(n,m,sep='\n')
        break
    elif a*n + b*m < K: # a์™€ b๊ฐ’์ด k ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด b์˜ ๊ฐ’์„ ํ•˜๋‚˜ํ‚ค์›€ 
        m += 1
    else: # ๊ฐ’์ด ํฌ๋‹ค๋ฉด a ๊ฐ’ ํ•˜๋‚˜ ํ‚ค์šฐ๊ณ  b๋Š” ๋‹ค์‹œ 1๋ถ€ํ„ฐ
        n += 1
        m = 1

 

๐Ÿฏ ํ˜ธ๋žญ์ด ๐Ÿฏ

๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ : ๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด

 

2502๋ฒˆ: ๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด

์ฒซ์ค„์— ์ฒซ ๋‚ ์— ์ค€ ๋–ก์˜ ๊ฐœ์ˆ˜ A๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ๋‘˜์งธ ์ค„์—๋Š” ๋‘˜์งธ ๋‚ ์— ์ค€ ๋–ก์˜ ๊ฐœ์ˆ˜ B๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ D, K์— ๋Œ€ํ•ด์„œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜ A, B (1≤ A ≤ B)๊ฐ€ ์กด์žฌํ•œ๋‹ค. 

www.acmicpc.net