๋ฐฑ์ค€ 1946 ํŒŒ์ด์ฌ

2021. 5. 4. 23:29ใ†Python

www.acmicpc.net/problem/1946

 

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

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

www.acmicpc.net

์ด ๋ฌธ์ œ๋Š” ์šฐ์„  ์ดํ•ด๊ฐ€ ์ค‘์š”ํ•ด ๋ณด์ธ๋‹ค. ์ฒ˜์Œ์— ๋ฌธ์ œ ์ž์ฒด๋ฅผ ์ดํ•ด ๋ชป ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ์˜ˆ์ œ ์ •๋‹ต์ด ๋‚˜์˜ค๋Š”์ง€๋„ ๊ธด๊ฐ€๋ฏผ๊ฐ€ํ•ด์„œ.. ์ฒ˜์Œ์— ์กฐ๊ธˆ ์‹œ๋„ํ•˜๋‹ค๊ฐ€ ๋ฐฉ์น˜ํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๊บผ๋‚ด์„œ ํ’€์—ˆ๋‹ค.

 

1946 ์งˆ๋ฌธ์—์„œ ์–ด๋–ค ๋ถ„์ด ์ฝ”๋ฉ˜ํŠธ์— ๋„ˆ๋ฌด ์ž˜ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ์„ค๋ช…์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”๋‹ค.

 

์ง€์›์ž๊ฐ€ ๋ชจ๋‘ ํ•œ ์žฅ์†Œ์— ๋ชจ์˜€๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณผ๊ฒŒ์š”.
๊ทธ ์ค‘์— ํ•œ ์ง€์›์ž์˜ ์ž…์žฅ์ด ๋˜์–ด, ๋‹ค๋ฅธ ์ง€์›์ž๋“ค์˜ ๋ฉด์ ‘, ์„œ๋ฅ˜ ์ ์ˆ˜๋ฅผ ๋ด…๋‹ˆ๋‹ค.
๊ทธ ์ค‘์— ์–ด๋–ค ํ•œ ์‚ฌ๋žŒ์ด๋ผ๋„ ๋‚˜๋ณด๋‹ค ๋‘ ์ ์ˆ˜๊ฐ€ ๋” ๋†’์œผ๋ฉด, ๋‚˜๋Š” ์„ ๋ฐœ์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ์—†์œผ๋ฉด ๋‚˜๋Š” ์„ ๋ฐœ๋˜๋Š” ๊ฑฐ๊ณ ์š”.
์ด๋ฅผ ๋ชจ๋“  ์ง€์›์ž์— ๋Œ€ํ•ด ๋‹ค ํ•ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋‚ด๊ฐ€ ์–ป์€ ํžŒํŠธ๋Š” ๊ทธ๋Ÿผ ์šฐ์„  list ์˜ ์ •๋ ฌ ๊ธฐ๋Šฅ(sort)๋ฅผ ์จ๋ณด๋ฉด ์–ด๋–จ๊นŒ? ์˜€๋‹ค. 

๋ฆฌ์ŠคํŠธ๋กœ ์ •๋ ฌํ•ด์„œ ํ•œ ๋ฒˆ printํ•ด๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ,

์ฒซ ๋ฒˆ์งธ ์„œ๋ฅ˜ ์‹ฌ์‚ฌ์—์„œ 1๋“ฑ์„ ํ•œ ์‚ฌ๋žŒ์€ ๋ฌด์กฐ๊ฑด ์„ ๋ฐœ๋œ๋‹ค. ์„œ๋ฅ˜ ์‹ฌ์‚ฌ 2๋“ฑ์€ 1๋“ฑ์˜ ๋ฉด์ ‘ ์ ์ˆ˜๋ณด๋‹ค ๋†’์€ ๋“ฑ์ˆ˜๋ฅผ ๊ฐ€์ง€๋ฉด ์„ ๋ฐœ๋œ๋‹ค. 

 

๋ผ๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

์ฆ‰, ์ฒ˜์Œ์— ์ •๋ ฌ์„ ํ†ตํ•ด ์„œ๋ฅ˜ ์‹ฌ์‚ฌ ๋“ฑ์ˆ˜๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ , ์˜ค์ง ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋กœ๋งŒ ์„ ๋ฐœ ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. 

 

๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ for ๋ฌธ์„ ๋Œ๋ฉด์„œ ๋‚ด ์„œ๋ฅ˜์‹ฌ์‚ฌ ๋“ฑ์ˆ˜๋ณด๋‹ค ๋ฐ”๋กœ ์•ž์— ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋ฅผ ๋‚˜์™€ ๋น„๊ตํ•˜๋Š” ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”๋ฐ, 'ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค'๋ฅผ ๋ฐ›์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ˜๋ก€๋ฅผ ์ฐพ๋‹ค ๋ณด๋‹ˆ ์•„ํ•˜, ๋‚ด ๊ธฐ์ค€์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๊ฑธ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋‹จ์ˆœํžˆ ์•ž์‚ฌ๋žŒ๊ณผ ๋น„๊ตํ•˜๋‹ค๊ฐ„ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ๋Š” ์ด์™€ ๊ฐ™๋‹ค.

 

<์ž…๋ ฅ>

1
7
1 4
2 3
3 2
4 1
5 7
6 6
7 5

<๋งŒ์•ฝ ์„œ๋ฅ˜ ๋“ฑ์ˆ˜ ์•ž ์‚ฌ๋žŒ๊ณผ์˜ ๋น„๊ต'๋งŒ' ์ง„ํ–‰ํ•œ๋‹ค๋ฉด ๊ฒฐ๊ณผ>

6

<์‹ค์ œ ์ •๋‹ต>

4

 

์™œ ๊ทธ๋Ÿด๊นŒ? ๋ฐ”๋กœ 5 7/ 6 6 / 7 5 ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

5 7์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„ ๋ฐœ๋˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 6 6 ์€ ์•ž์˜ 5 7 ๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ 6์ด 7๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ์„ ๋ฐœ๋œ๋‹ค๋Š” ์ฐฉ๊ฐ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, ์•ž์‚ฌ๋žŒ๊ณผ์˜ ๋น„๊ต๊ฐ€ ์•„๋‹ˆ๋ผ '์ตœ์†Ÿ๊ฐ’'์œผ๋กœ ๋น„๊ต๋ฅผ ํ•ด์•ผ ๋ฌธ์ œ ์—†์ด ๋Œ์•„๊ฐ„๋‹ค. ์•„๊นŒ์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ๋Š” 4๋ฒˆ์งธ ๋ฃจํ”„์ธ 4 1 ์—์„œ 1์ด ์ตœ์†Ÿ๊ฐ’์ด ๋˜๋ฏ€๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ 5 7 /6 6 /7 5๋Š” ํƒˆ๋ฝํ•˜๊ฒŒ ๋œ๋‹ค.

 

<์ „์ฒด ์ฝ”๋“œ>

from sys import stdin

a = []
passed = []
t = int(stdin.readline())

for i in range(0, t):
    passed.append(1)
    n = int(stdin.readline())
    for j in range(0,n):
        ranks = list(map(int, stdin.readline().split()))
        a.append(ranks)
    a.sort();
    
    min = a[0][1]

    for j in range(1, n):
        if a[j][1] < min:
            passed[i] += 1
            min = a[j][1]

    del a[0:]

for i in range(0,t):
    print(passed[i])