deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ๋ฐฑ์ค€ - 1309. ๋™๋ฌผ์›
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 1309. ๋™๋ฌผ์›

2020. 8. 28. 08:11
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

1. S1 | DP

2. ์‚ฌ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ, ์‚ฌ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

3. i๋ฒˆ์งธ์—์„œ i-1๋ฒˆ์งธ์— ์‚ฌ์ž์˜ ์ƒํƒœ์— ๋”ฐ๋ผ i๋ฒˆ์งธ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.

 (1) i๋ฒˆ์งธ์— ์‚ฌ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋Š” i-1๋ฒˆ์งธ์— ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๊ณ  ์—†์–ด๋„ ๋œ๋‹ค.

 (2) i๋ฒˆ์งธ์— ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” i-1๋ฒˆ์งธ์— ์‚ฌ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ์™€ ์—†๋Š” ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 (i-1๋ฒˆ์งธ์— ์™ผ์ชฝ์— ์žˆ์œผ๋ฉด i๋ฒˆ์งธ์—์„œ๋Š” ์™ผ์ชฝ์— ์žˆ์„ ์ˆ˜ ์—†๋‹ค)

 (3) ์˜ค๋ฅธ์ชฝ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

4. ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ ์ฐจ ๋”ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ๋งˆ์ง€๋ง‰ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ๋”ํ•ด์ค€๋‹ค.

 

๐Ÿ’จ ๋งˆ์ง€๋ง‰์—๋งŒ 9901๋กœ ๋‚˜๋ˆ„๋ ค๊ณ ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฐ’์„ ์Œ“์„ ๋•Œ ๋ถ€ํ„ฐ ๋‚˜๋ˆ ์ฃผ๋ฉด์„œ ํ•˜์ž.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

if __name__ == "__main__":
    N = int(input())
    dp_no_lion = [0]*(N+1)  # ์‚ฌ์ž๊ฐ€ ์—†์„ ๋•Œ
    dp_left_lion = [0]*(N+1)  # ์™ผ์ชฝ์— ์‚ฌ์ž๊ฐ€ ์žˆ์„ ๋–„
    dp_right_lion = [0]*(N+1)  # ์˜ค๋ฅธ์ชฝ์— ์‚ฌ์ž๊ฐ€ ์žˆ์„ ๋•Œ

    dp_no_lion[0] = 1
    for i in range(1, N+1):
        dp_no_lion[i] = (dp_no_lion[i-1] + dp_left_lion[i-1] + dp_right_lion[i-1]) % 9901
        dp_left_lion[i] = (dp_no_lion[i-1] + dp_right_lion[i-1]) % 9901
        dp_right_lion[i] = (dp_no_lion[i-1] + dp_left_lion[i-1]) % 9901

    answer = dp_no_lion[N] + dp_left_lion[N] + dp_right_lion[N]
    print(answer % 9901)
    

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/1309

 

1309๋ฒˆ: ๋™๋ฌผ์›

์ฒซ์งธ ์ค„์— ์šฐ๋ฆฌ์˜ ํฌ๊ธฐ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

์–ด๋–ค ๋™๋ฌผ์›์— ๊ฐ€๋กœ๋กœ ๋‘์นธ ์„ธ๋กœ๋กœ N์นธ์ธ ์•„๋ž˜์™€ ๊ฐ™์€ ์šฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค.

์ด ๋™๋ฌผ์›์—๋Š” ์‚ฌ์ž๋“ค์ด ์‚ด๊ณ  ์žˆ๋Š”๋ฐ ์‚ฌ์ž๋“ค์„ ์šฐ๋ฆฌ์— ๊ฐ€๋‘˜ ๋•Œ, ๊ฐ€๋กœ๋กœ๋„ ์„ธ๋กœ๋กœ๋„ ๋ถ™์–ด ์žˆ๊ฒŒ ๋ฐฐ์น˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์ด ๋™๋ฌผ์› ์กฐ๋ จ์‚ฌ๋Š” ์‚ฌ์ž๋“ค์˜ ๋ฐฐ์น˜ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“๊ณ  ์žˆ๋‹ค.

๋™๋ฌผ์› ์กฐ๋ จ์‚ฌ์˜ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„์ง€ ์•Š๋„๋ก ์šฐ๋ฆฌ๊ฐ€ 2*N ๋ฐฐ์—ด์— ์‚ฌ์ž๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐ€์ง€์ธ์ง€๋ฅผ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ์ฃผ๋„๋ก ํ•˜์ž. ์‚ฌ์ž๋ฅผ ํ•œ ๋งˆ๋ฆฌ๋„ ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ํ•˜๋‚˜์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ ์นœ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์šฐ๋ฆฌ์˜ ํฌ๊ธฐ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์‚ฌ์ž๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ 9901๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€

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

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค (2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ)  (0) 2020.08.30
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ž๋ฌผ์‡ ์™€ ์—ด์‡ (2020 KAKAO BLIND RECRUITMENT)  (2) 2020.08.29
[python] ๋ฐฑ์ค€ - 1992. ์ฟผ๋“œํŠธ๋ฆฌ  (0) 2020.08.27
[python] ๋ฐฑ์ค€ - 7569. ํ† ๋งˆํ†   (0) 2020.08.26
[python] ๋ฐฑ์ค€ - 2251. ๋ฌผํ†ต  (0) 2020.08.25
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค (2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ž๋ฌผ์‡ ์™€ ์—ด์‡ (2020 KAKAO BLIND RECRUITMENT)
    • [python] ๋ฐฑ์ค€ - 1992. ์ฟผ๋“œํŠธ๋ฆฌ
    • [python] ๋ฐฑ์ค€ - 7569. ํ† ๋งˆํ† 
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”