ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] ๋ฐฑ์ค€ 15787 ๊ธฐ์ฐจ๊ฐ€ ์–ด๋‘ ์„ ํ—ค์น˜๊ณ  ์€ํ•˜์ˆ˜๋ฅผ (๊ตฌํ˜„)
    ๐Ÿ’ป Algorithm/Python 2022. 7. 8. 19:23

    ๐Ÿ“Œ ๋ฌธ์ œ

    N๊ฐœ์˜ ๊ธฐ์ฐจ๊ฐ€ ์–ด๋‘ ์„ ํ—ค์น˜๊ณ  ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ˆ๋ ค๊ณ  ํ•œ๋‹ค.

     

    ๊ธฐ์ฐจ๋Š” 20๊ฐœ์˜ ์ผ๋ ฌ๋กœ ๋œ ์ขŒ์„์ด ์žˆ๊ณ , ํ•œ ๊ฐœ์˜ ์ขŒ์„์—๋Š” ํ•œ ๋ช…์˜ ์‚ฌ๋žŒ์ด ํƒˆ ์ˆ˜ ์žˆ๋‹ค.

    ๊ธฐ์ฐจ์˜ ๋ฒˆํ˜ธ๋ฅผ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ์œผ๋กœ ๋งค๊ธธ ๋•Œ, ์–ด๋– ํ•œ ๊ธฐ์ฐจ์— ๋Œ€ํ•˜์—ฌ M๊ฐœ์˜ ๋ช…๋ น์ด ์ฃผ์–ด์ง„๋‹ค.

    ๋ช…๋ น์˜ ์ข…๋ฅ˜๋Š” 4๊ฐ€์ง€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

     

    1 i x : i๋ฒˆ์งธ ๊ธฐ์ฐจ์—(1 ≤ i ≤ N) x๋ฒˆ์งธ ์ขŒ์„์—(1 ≤ x ≤ 20) ์‚ฌ๋žŒ์„ ํƒœ์›Œ๋ผ. ์ด๋ฏธ ์‚ฌ๋žŒ์ด ํƒ€์žˆ๋‹ค๋ฉด , ์•„๋ฌด๋Ÿฐ ํ–‰๋™์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.


    2 i x : i๋ฒˆ์งธ ๊ธฐ์ฐจ์— x๋ฒˆ์งธ ์ขŒ์„์— ์•‰์€ ์‚ฌ๋žŒ์€ ํ•˜์ฐจํ•œ๋‹ค. ๋งŒ์•ฝ ์•„๋ฌด๋„ ๊ทธ์ž๋ฆฌ์— ์•‰์•„์žˆ์ง€ ์•Š์•˜๋‹ค๋ฉด, ์•„๋ฌด๋Ÿฐ ํ–‰๋™์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.


    3 i : i๋ฒˆ์งธ ๊ธฐ์ฐจ์— ์•‰์•„์žˆ๋Š” ์Šน๊ฐ๋“ค์ด ๋ชจ๋‘ ํ•œ์นธ์”ฉ ๋’ค๋กœ๊ฐ„๋‹ค. k๋ฒˆ์งธ ์•‰์€ ์‚ฌ๋žŒ์€ k+1๋ฒˆ์งธ๋กœ ์ด๋™ํ•˜์—ฌ ์•‰๋Š”๋‹ค. ๋งŒ์•ฝ 20๋ฒˆ์งธ ์ž๋ฆฌ์— ์‚ฌ๋žŒ์ด ์•‰์•„์žˆ์—ˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ๋žŒ์€ ์ด ๋ช…๋ น ํ›„์— ํ•˜์ฐจํ•œ๋‹ค.


    4 i : i๋ฒˆ์งธ ๊ธฐ์ฐจ์— ์•‰์•„์žˆ๋Š” ์Šน๊ฐ๋“ค์ด ๋ชจ๋‘ ํ•œ์นธ์”ฉ ์•ž์œผ๋กœ๊ฐ„๋‹ค. k๋ฒˆ์งธ ์•‰์€ ์‚ฌ๋žŒ์€ k-1 ๋ฒˆ์งธ ์ž๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ์•‰๋Š”๋‹ค. ๋งŒ์•ฝ 1๋ฒˆ์งธ ์ž๋ฆฌ์— ์‚ฌ๋žŒ์ด ์•‰์•„์žˆ์—ˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ๋žŒ์€ ์ด ๋ช…๋ น ํ›„์— ํ•˜์ฐจํ•œ๋‹ค.


    M๋ฒˆ์˜ ๋ช…๋ น ํ›„์— 1๋ฒˆ์งธ ๊ธฐ์ฐจ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ๊ธฐ์ฐจ์”ฉ ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ˆ๋Š”๋ฐ ์กฐ๊ฑด์ด ์žˆ๋‹ค.

    ๊ธฐ์ฐจ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ง€๋‚˜๊ฐ€๋ฉฐ ๊ธฐ์ฐจ๊ฐ€ ์ง€๋‚˜๊ฐˆ ๋•Œ ์Šน๊ฐ์ด ์•‰์€ ์ƒํƒœ๋ฅผ ๋ชฉ๋ก์— ๊ธฐ๋กํ•˜๋ฉฐ ์ด๋ฏธ ๋ชฉ๋ก์— ์กด์žฌํ•˜๋Š” ๊ธฐ๋ก์ด๋ผ๋ฉด ํ•ด๋‹น ๊ธฐ์ฐจ๋Š” ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜ ์—†๋‹ค.

     

    ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋‹ค์Œ ๊ทธ๋ฆผ์„ ์˜ˆ๋กœ ๋“ค์—ˆ์„ ๋•Œ, 1๋ฒˆ์งธ ๊ธฐ์ฐจ์™€ ๊ฐ™์ด ์Šน๊ฐ์ด ์•‰์€ ์ƒํƒœ๋Š” ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜์žˆ๋‹ค. 2๋ฒˆ์งธ ๊ธฐ์ฐจ์™€ ๊ฐ™์€ ์ƒํƒœ๋„ ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— 2๋ฒˆ์งธ ๊ธฐ์ฐจ๋„ ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜ ์žˆ๋‹ค. 3๋ฒˆ์งธ ๊ธฐ์ฐจ๋Š” 1๋ฒˆ์งธ ๊ธฐ์ฐจ์™€ ์Šน๊ฐ์ด ์•‰์€ ์ƒํƒœ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜ ์—†๋‹ค.

     

     

    ์ฒ˜์Œ์— ์ฃผ์–ด์ง€๋Š” ๊ธฐ์ฐจ์—๋Š” ์•„๋ฌด๋„ ์‚ฌ๋žŒ์ด ํƒ€์ง€ ์•Š๋Š”๋‹ค.

    ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ฐจ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

    ์ž…๋ ฅ

    ์ž…๋ ฅ์˜ ์ฒซ์งธ ์ค„์— ๊ธฐ์ฐจ์˜ ์ˆ˜ N(1 ≤ N ≤ 100000)๊ณผ ๋ช…๋ น์˜ ์ˆ˜ M(1 ≤ M ≤ 100000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ดํ›„ ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ M+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ ๊ฐ ์ค„์— ๋ช…๋ น์ด ์ฃผ์–ด์ง„๋‹ค.

    ์ถœ๋ ฅ

    ์€ํ•˜์ˆ˜๋ฅผ ๊ฑด๋„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ฐจ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

    ์˜ˆ์ œ ์ž…๋ ฅ 1

    5 5
    1 1 1
    1 1 2
    1 2 2
    1 2 3
    3 1

    ์˜ˆ์ œ ์ถœ๋ ฅ 1

    2

     


    ๐Ÿ“Œ ํ’€์ด

    ๐Ÿ’ฌ Code

    import sys
    input = sys.stdin.readline
    
    n, m = map(int, input().split())
    train = [[0 for _ in range(20)] for _ in range(n)]
    state = []
    
    for _ in range(m):
        a = list(map(int, input().split()))
    
        if a[0] == 1:
            train[a[1] - 1][a[2] - 1] = 1
            
        elif a[0] == 2:
            train[a[1] - 1][a[2] - 1] = 0
            
        elif a[0] == 3:
            for j in range(19, 0, -1):
                train[a[1] - 1][j] = train[a[1] - 1][j - 1]
            train[a[1] - 1][0] = 0
            
        elif a[0] == 4:
            for j in range(19):
                train[a[1] - 1][j] = train[a[1] - 1][j + 1]
            train[a[1] - 1][19] = 0
    
    cnt = 0
    for i in range(n):
        if train[i] not in state:
            state.append(train[i])
            cnt += 1
    
    print(cnt)

    ๐Ÿ’ก Solution

    1. ๊ธฐ์ฐจ ๊ฐ๊ฐ์„ ์›์†Œ 20๊ฐœ๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ๋กœ ์ƒ์„ฑ, 20๊ฐœ๋ฅผ ์ „๋ถ€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค๋‹ˆ๋‹ค. (์•„๋ฌด๋„ ์•ˆ ํƒ„ ์ƒํƒœ)

     

    2. ๋ช…๋ น์ด 1์ด๋ฉด x๋ฒˆ์งธ ์ขŒ์„์˜ ๊ฐ’๋งŒ 1๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. (์›๋ž˜ x๋ฒˆ์งธ ์ขŒ์„์— ์‚ฌ๋žŒ์ด ํƒ€๊ณ  ์žˆ๋“  ์•ˆ ํƒ€๊ณ  ์žˆ๋“  ์–ด์ฐจํ”ผ ์ขŒ์„ ๊ฐ’์€ 1์ด์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ฐฉ์„ ์—ฌ๋ถ€ ํŒ๋ณ„ ํ•„์š” X), ๋ช…๋ น 2, 3, 4๋„ ๊ฐ™์€ ์ด์œ ๋กœ ์ฐฉ์„ ์—ฌ๋ถ€ ํŒ๋ณ„ ํ•„์š” X

     

    3. ์€ํ•˜์ˆ˜๋ฅผ ํ†ต๊ณผํ•œ ๊ธฐ์ฐจ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ state๋ฅผ ๋งŒ๋“ค๊ณ , for๋ฌธ์„ ๊ธฐ์ฐจ ์ˆ˜๋งŒํผ ๋Œ๋ ค์„œ i๋ฒˆ์งธ ๊ธฐ์ฐจ์˜ ์ƒํƒœ๊ฐ€ state์— ์—†๋‹ค๋ฉด state์— ์‚ฝ์ž…ํ•˜๊ณ  cnt += 1

     

     

     

    ๋Œ“๊ธ€

Designed by Tistory.