๐Ÿค–/๋ฐฑ์ค€

๋ฐฑ์ค€ 1946: ์‹ ์ž… ์‚ฌ์› (Python)

sssbin 2021. 9. 30. 16:26

https://www.acmicpc.net/problem/1946

 

1946๋ฒˆ: ์‹ ์ž… ์‚ฌ์›

์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ

www.acmicpc.net

 

์ฒ˜์Œ ํ‘ผ ์ฝ”๋“œ - ์‹œ๊ฐ„ ์ดˆ๊ณผ

import sys
t = int(sys.stdin.readline())

for i in range(t):
    n = int(sys.stdin.readline())
    list1 = [0 for i in range(n)]
    list2 = [0 for i in range(n)]

    for j in range(n):
        r1, r2 = map(int, sys.stdin.readline().split())
        list1[r1 - 1] = j + 1
        list2[r2 - 1] = j + 1

    k = n
    cnt = 0

    for j in list1:
        if list2.index(j) < k:
            cnt += 1
            k = list2.index(j)

    print(cnt)

 

๋ฆฌ์ŠคํŠธ ๋‘๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋น„๊ตํ•˜๋Š”๊ฒŒ ๋น„ํšจ์œจ์ ์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค

๊ทธ๋ž˜์„œ ๋ฆฌ์ŠคํŠธ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ ๋‹ค์‹œ ํ’€์—ˆ๋‹ค

 

import sys
t = int(sys.stdin.readline())

for i in range(t):
    n = int(sys.stdin.readline())
    p = []

    for j in range(n):
        r1, r2 = map(int, sys.stdin.readline().split())
        p.append([r1, r2])

    p.sort()
    k = n + 1
    cnt = 0

    for j in range(n):
        if p[j][1] < k:
            cnt += 1
            k = p[j][1]

    print(cnt)

 

ํ‘ผ ๋ฐฉ์‹์€ ๋˜‘๊ฐ™์Œ

 

 

์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ ๋ฌธ์ œ์˜€๋‹ค

 

์Šฌํผ์š”๐Ÿ’ง

 

๋ฉ์ฒญํ•˜๊ฒŒ ์ค‘๊ฐ„์— print๋กœ ํ™•์ธ ์ฝ”๋“œ ๋„ฃ์—ˆ๋‹ค๊ฐ€ ์•ˆ ์ง€์šฐ๊ณ  ๊ทธ๋ƒฅ ์ œ์ถœํ•ด์„œ ํ‹€๋ฆผ~