๊ธฐ๋ก๋ฐฉ

BOJ_13301 : ํƒ€์ผ ์žฅ์‹๋ฌผ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_13301 : ํƒ€์ผ ์žฅ์‹๋ฌผ

Soom_1n 2022. 11. 5. 23:35

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

13301๋ฒˆ: ํƒ€์ผ ์žฅ์‹๋ฌผ

๋Œ€๊ตฌ ๋‹ฌ์„ฑ๊ณต์›์— ๋†€๋Ÿฌ ์˜จ ์ง€์ˆ˜๋Š” ์ตœ๊ทผ์— ์ƒˆ๋กœ ๋งŒ๋“  ํƒ€์ผ ์žฅ์‹๋ฌผ์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ํƒ€์ผ ์žฅ์‹๋ฌผ์€ ์ •์‚ฌ๊ฐํ˜• ํƒ€์ผ์„ ๋ถ™์—ฌ ๋งŒ๋“  ํ˜•ํƒœ์˜€๋Š”๋ฐ, ํ•œ ๋ณ€์ด 1์ธ ์ •์‚ฌ๊ฐํ˜• ํƒ€์ผ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋งˆ์น˜ ์•ต๋ฌด์กฐ๊ฐœ

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๋‚˜์„  ๋ชจ์–‘์œผ๋กœ ์ปค์ ธ๊ฐ€๋Š” ํƒ€์ผ์„ n๊ฐœ ๋ฐฐ์น˜ํ–ˆ์„๋•Œ ๋งŒ๋“ค์–ด์ง„ ์ง์‚ฌ๊ฐํ˜•์˜ ๋‘˜๋ ˆ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • 3๋ฒˆ์งธ ํƒ€์ผ ๋ถ€ํ„ฐ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๋ฐฉ์‹์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

n = int(input())

arr = [1, 1]

if n == 1:
    answer = 4
elif n == 2:
    answer = 6
else:
    for i in range(n-2):
        arr.append(sum(arr[-2:]))
    answer = arr[-1]*2 + sum(arr[-2:])*2
print(answer)

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • n์ด 1์ด๊ฑฐ๋‚˜ 2์ผ๋•Œ๋Š” ์˜ˆ์™ธ๋กœ ๋”ฐ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • n์ด 3์ด์ƒ์ผ๋•Œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ์ฒ˜๋Ÿผ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ํƒ€์ผ์˜ ํ•œ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๋ฐฉ์‹์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

๐Ÿ”ธ ๋‹ค๋ฅธ ํ’€์ด ๐Ÿ”ธ

n = int(input())

d = [0] * (n+1)

d[0] = 4
d[1] = 6

for i in range(2, n):
    d[i] = d[i-1] + d[i-2]

print(d[n-1])
  • ํƒ€์ผ์˜ ํ•œ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ์•„๋‹ˆ๋ผ, ๋งŒ๋“ค์–ด์ง„ ์ง์‚ฌ๊ฐํ˜•์˜ ๋„ˆ๋น„๋ฅผ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๋ฐฉ์‹์˜ ์ ํ™”์‹์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๋ฐฐ์—ด d๋ฅผ n+1 ํฌ๊ธฐ๋กœ ๋งŒ๋“œ๋Š”๋ฐ, ์‚ฌ์‹ค n๊ฐœ๊ฐ€ ์“ฐ์ด๊ณ  ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค n์€ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
    • n==1 ์ผ๋•Œ, d[1]์— ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์ธ๋ฑ์Šค ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • dp๋ฌธ์ œ์ธ ๊ฑด ์•Œ์•˜์ง€๋งŒ, ๋‹ค๋ฅธ ํ’€์ด์ฒ˜๋Ÿผ ์ข€ ๋” ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
    • ๋„ˆ๋น„๋„ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๋ฐฉ์‹์ธ์ง€๋Š” ๋’ค๋Šฆ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_5211 : ๊ฐ€๋‹จ์กฐ์™€ ๋‹ค์žฅ์กฐ  (0) 2022.11.13
BOJ_5566 : ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„  (0) 2022.11.11
BOJ_2810 : ์ปตํ™€๋”  (0) 2022.11.05
BOJ_4998 : ์ €๊ธˆ  (0) 2022.11.04
BOJ_1193 : ๋ถ„์ˆ˜์ฐพ๊ธฐ  (0) 2022.10.19