Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 9658. ๋Œ ๊ฒŒ์ž„4

deo2kim 2020. 9. 16. 21:10
๋ฐ˜์‘ํ˜•

๋Œ ๊ฒŒ์ž„

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

S1 | ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

์ด๊ฒŒ์ž„์€ ๊ฑฐ์˜ ์„ ๋นตํ•„์Šน ๊ตฌ์กฐ์ด๋‹ค. ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋งŒ ๋นผ๊ณ !

 

๋จผ์ € ์†์‰ฝ๊ฒŒ 1~4๊ฐœ์ผ ๋•Œ์˜ ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋Œ 1๊ฐœ: ์„  - ํ›„๊ณต ์Šน
  • ๋Œ 2๊ฐœ: ์„ , ํ›„ - ์„ ๊ณต ์Šน
  • ๋Œ 3๊ฐœ: ์„ , ํ›„, ์„  - ํ›„๊ณต ์Šน
  • ๋Œ 4๊ฐœ: ์„ ์„ ์„ , ํ›„ - ์„ ๊ณต ์Šน

๋‹ค์Œ 5๊ฐœ๋ถ€ํ„ฐ๋Š” ์ ํ™”์‹์œผ๋กœ ๊ตฌํ•ด๋ณด์ž.

 

๋Œ์ด 5๊ฐœ์ผ ๋•Œ ์ƒ์˜์ด๊ฐ€ ๋Œ์„ ๋‘˜ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 1๊ฐœ, 3๊ฐœ, 4๊ฐœ์ด๋‹ค - 3๊ฐ€์ง€ ๊ฒฝ์šฐ

 

๋จผ์ € ์ƒ์˜์ด๊ฐ€ ๋Œ์„ 1๊ฐœ ๋’€๋‹ค๊ณ  ํ•˜์ž

  • ๊ทธ๋Ÿผ ๋‚จ์€ ๋Œ์€ 4๊ฐœ์ด๊ณ  ์ฐฝ๊ทผ์ด๋Š” ์„ ๊ณต์ด ๋œ๋‹ค.
  • ์œ„์˜ 4๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๋ดค์„ ๋•Œ ๋Œ 4๊ฐœ์—์„œ๋Š” ์„ ๊ณต์ด ๋ฌด์กฐ๊ฑด ์ด๊ธด๋‹ค. - ์ฐฝ๊ทผ ์Šน

๋‹ค์Œ ์ƒ์˜์ด๊ฐ€ ๋Œ์„ 3๊ฐœ ๋’€๋‹ค๊ณ  ํ•˜์ž

  • ๋‚จ์€ ๋Œ์€ 2๊ฐœ์ด๊ณ  ์ฐฝ๊ทผ์ด๋Š” ์„ ๊ณต์ด ๋œ๋‹ค.
  • ์œ„์˜ 4๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๋ดค์„ ๋•Œ ๋Œ 2๊ฐœ์—์„œ๋Š” ์„ ๊ณต์ด ๋ฌด์กฐ๊ฑด ์ด๊ธด๋‹ค. - ์ฐฝ๊ทผ ์Šน

๋งˆ์ง€๋ง‰ ์ƒ์˜์ด๊ฐ€ ๋Œ์„ 4๊ฐœ ๋’€๋‹ค๊ณ  ํ•˜์ž

  • ๋‚จ์€ ๋Œ์€ 1๊ฐœ์ด๊ณ  ์ฐฝ๊ทผ์ด๋Š” ์„ ๊ณต์ด ๋œ๋‹ค.
  • ์œ„์˜ 4๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๋ดค์„ ๋•Œ ๋Œ 1๊ฐœ์—์„œ๋Š” ํ›„๊ณต์ด ๋ฌด์กฐ๊ฑด ์ด๊ธด๋‹ค. - ์ƒ์˜ ์Šน

๋งŒ์•ฝ 3๊ฐ€์ง€ ๋ชจ๋‘ ์„ ๊ณต์ด ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ƒ์˜์ด๊ฐ€ ๋Œ์„ ๋‘” ์ˆœ๊ฐ„ ๊ทธ ๋‚˜๋จธ์ง€ ๋Œ์—์„œ๋Š” ์ฐฝ๊ทผ์ด๊ฐ€ ์„ ๊ณต์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์กฐ๊ฑด ์ƒ์˜์ด๊ฐ€ ์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.ํ•˜์ง€๋งŒ!!!!! ํ•œ๊ฐ€์ง€๋ผ๋„ ํ›„๊ณต์ด ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ƒ์˜์ด๊ฐ€ ์ด๊ธธ ์ˆ˜ ์žˆ๊ฒŒ ๋Œ์„ ๋‘˜ ๊ฒƒ์ด๋ฏ€๋กœ ์ƒ์˜์ด๊ฐ€ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

๊ฒฐ๋ก !! ํ˜„์žฌ i ์—์„œ i-1, i-3, i-4 ์—์„œ ๋ชจ๋‘ ๊ฐ’์ด 1( ์„ ๊ณต์ด ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ ) ๋ผ๋ฉด ์ฐฝ๊ทผ์ด๊ฐ€ ์ด๊ธธ ๊ฒƒ์ด๊ณ ,ํ•˜๋‚˜๋ผ๋„ ๊ฐ’์ด 0( ํ›„๊ณต์ด ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ ) ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ƒ์˜์ด๊ฐ€ ์ด๊ธธ ๊ฒƒ์ด๋‹ค.

 

๐Ÿ’จ ์ƒ์˜์ด๊ฐ€ ๋Œ์„ ๋‘” ์ˆœ๊ฐ„ ๋‚˜๋จธ์ง€ ๋Œ์—์„œ๋Š” ์„ ๊ณต์ด ์ฐฝ๊ทผ์ด๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค!!

 

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

def solution(n):
    dp = [0] * (n + 5)
    # ์ƒ์˜ win 1, ์ฐฝ๊ทผ win 0
    # 1๊ฐœ ์ฐฝ๊ทผ win
    dp[1] = 0
    # 2๊ฐœ ์ƒ์˜ win
    dp[2] = 1
    # 3๊ฐœ ์ฐฝ๊ทผ win
    dp[3] = 0
    # 1๊ฐœ ์ƒ์˜ win
    dp[4] = 1

    for i in range(5, n + 1):
        if dp[i - 1] and dp[i - 3] and dp[i - 4]:
            dp[i] = 0
        else:
            dp[i] = 1

    if dp[n] == 1:
        print('SK')
    else:
        print('CY')
    return dp[-1]


if __name__ == "__main__":
    n = int(input())
    solution(n)

 

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

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

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

 

9658๋ฒˆ: ๋Œ ๊ฒŒ์ž„ 4

์ƒ๊ทผ์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์˜์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด CY์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

๋Œ ๊ฒŒ์ž„์€ ๋‘ ๋ช…์ด์„œ ์ฆ๊ธฐ๋Š” ์žฌ๋ฐŒ๋Š” ๊ฒŒ์ž„์ด๋‹ค.

ํƒ์ž ์œ„์— ๋Œ N๊ฐœ๊ฐ€ ์žˆ๋‹ค. ์ƒ๊ทผ์ด์™€ ์ฐฝ์˜์ด๋Š” ํ„ด์„ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋Œ์„ ๊ฐ€์ ธ๊ฐ€๋ฉฐ, ๋Œ์€ 1๊ฐœ, 3๊ฐœ ๋˜๋Š” 4๊ฐœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋Œ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ์‚ฌ๋žŒ์ด ๊ฒŒ์ž„์„ ์ง€๊ฒŒ ๋œ๋‹ค.

๋‘ ์‚ฌ๋žŒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๊ฒŒ์ž„์„ ํ–ˆ์„ ๋•Œ, ์ด๊ธฐ๋Š” ์‚ฌ๋žŒ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๊ฒŒ์ž„์€ ์ƒ๊ทผ์ด๊ฐ€ ๋จผ์ € ์‹œ์ž‘ํ•œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1000)

์ถœ๋ ฅ

์ƒ๊ทผ์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์˜์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด CY์„ ์ถœ๋ ฅํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•