ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 4779 ์นธํ† ์–ด ์ง‘ํ•ฉ with Python
    PS 2021. 8. 31. 22:05
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 4779 ์นธํ† ์–ด ์ง‘ํ•ฉ

    ๐Ÿ’ก ์กฐ๊ฑด ๋ฐ ํ’€์ด

    1. ์นธํ† ์–ด ์ง‘ํ•ฉ์€ 0๊ณผ 1 ์‚ฌ์ด์˜ ์‹ค์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ.
      ๊ตฌ๊ฐ„ [0, 1]์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ฐ ๊ตฌ๊ฐ„์„ 3๋“ฑ๋ถ„ํ•˜์—ฌ ๊ฐ€์šด๋ฐ ๊ตฌ๊ฐ„์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ œ์™ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ ๋‹ค.
    2. -๊ฐ€ 3N๊ฐœ ์žˆ๋Š” ๋ฌธ์—ด์—์„œ ์‹œ์ž‘ == - ์˜ ๊ฐœ์ˆ˜๋Š” 3 ** N ๊ฐœ
    3. ๋ถ„ํ•  ์ •๋ณต + ์žฌ๊ท€ ์œ ํ˜•์˜ ๋ฌธ์ œ
    4. 0 <= N <= 12
    5. ํŒŒ์ผ์˜ ๋์—์„œ ์ž…๋ ฅ์„ ๋ฉˆ์ถ˜๋‹ค

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin, setrecursionlimit
    setrecursionlimit(10 ** 6)
    
    
    def div(s, idx):
        ls = len(s)
        if ls == 3 and idx != 1:
            return '- -'
        elif ls >= 3 and idx == 1:
            return s.replace('-', ' ')
    
        arr = []
    
        for i in range(0, ls, ls // 3):
            arr.append(string[i:i+ls//3])
    
        k = div(arr[0], 0) + div(arr[1], 1) + div(arr[2], 2)
        return k
    
    
    while 1:
        k = '-'
        n = stdin.readline().rstrip()
        if n == '':
            break
        num = (3 ** int(n))
        if num == 1:
            print('-')
            continue
    
        string = k * num
        arr = div(string, 0)
        print(arr)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    0
    1
    3
    2

    ์‹คํ–‰๊ฒฐ๊ณผ

    -
    - -
    - -   - -         - -   - -
    - -   - -

     

     

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

     

    1. ์นธํ† ์–ด ์ง‘ํ•ฉ์€ ๊ฐ ๊ตฌ๊ฐ„์„ 3๋“ฑ๋ถ„, ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐ€์šด๋ฐ ๊ตฌ๊ฐ„์„ ์ œ์™ธํ•˜๋Š” ๋ฐฉ์‹
    2. ํŒŒ์ผ์˜ ๋์—์„œ ์ž…๋ ฅ์„ ๋ฉˆ์ถ˜๋‹ค ๋ผ๋Š” ๋ง์€ ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋Œ๋‹ค๊ฐ€,
      ์ž…๋ ฅ๋ฐ›์€ N์ด ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด ''์ด๋ฉด break
    3. ์ž…๋ ฅ๋ฐ›์€ N์ด 0, -์˜ ๊ฐœ์ˆ˜๊ฐ€ 1์ด๋ผ๋ฉด print('-')
    4. (N ** 3) * '-' == ํ•˜์ดํ”ˆ์˜ ๊ฐœ์ˆ˜
    5. ๋งŒ๋“ค์–ด์ง„ ํ•˜์ดํ”ˆ์„ ๋ถ„ํ•  ์ •๋ณต ํ•จ์ˆ˜์— ๋„ฃ๋Š”๋‹ค.
      ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” 3 ** N๊ฐœ์˜ ํ•˜์ดํ”ˆ๊ณผ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์ด๋‹ค.
    6. ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋Š” ์„ธ๋“ฑ๋ถ„์ด ๋œ ๋ฌธ์ž์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์ด๋ฉฐ, ์žฌ๊ท€๋ฅผ ํ†ตํ•ด ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ 1์ธ
      ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋œ๋‹ค.
    7. ๋ฌธ์ž์—ด์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด
      ๊ทธ ๊ธธ์ด๋งŒํผ ๋ฆฌ์ŠคํŠธ๋ฅผ ์Šฌ๋ผ์ด์‹ฑํ•ด arr ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๋Š”๋‹ค.
    8. ๋ฐ˜ํ™˜ ์กฐ๊ฑด์€ ์•„๋ž˜์˜ ๋‘๊ฐ€์ง€๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.
      • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 3์ด๊ณ  ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ 1์ด ์•„๋‹ ๋•Œ์—๋Š” '- -'์„ ๋ฆฌํ„ด
      • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 3๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋ฉฐ, ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ 1์ผ ๋•Œ๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๊ณต๋ฐฑ์„ ๋ฐ˜ํ™˜

     

    ๐Ÿ’พ ๋Š๋‚€์ 

    • ๋ถ„ํ•  ์ •๋ณต์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜๊ณ  ์ธ๋ฑ์Šค๋ฅผ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์œผ๋กœ ๋„ฃ์ž๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
      ์ข‹์€ ์•„์ด๋””์–ด๊ฐ€ ํ•œ๋ฒˆ์— ๋– ์˜ฌ๋ผ์„œ ๋งค์šฐ ์ข‹์•˜๋‹ค.
    • ์„ฑ๊ณต์ ์ธ ํ’€์ด์˜€๋‹ค. ์žฌ๊ท€ ์‚ฌ์šฉ ์‹ค๋ ฅ์ด ์ตœ์•…์ด๋ผ ์‚ฌ์šฉ์ž์ฒด๊ฐ€ ๋งŽ์ด ํž˜๋“ค์—ˆ์ง€๋งŒ
      ์˜ˆ์ „๋ณด๋‹ค๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๋งค์šฐ ์ˆ˜์›”ํ•ด์กŒ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.