ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

๐Ÿšฉ ๊ทธ๋ฆฌ๋””

 

thinking

testcase 1

๋งจ ์ฒ˜์Œ ๊ตฌ๊ฐ„์„ ๊ธฐ์ค€์ ์œผ๋กœ ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋ ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜๋ฉด์„œ

8์ฒ˜๋Ÿผ ํ˜„์žฌ ์‹œ์ž‘์‹œ๊ฐ„์ด ์ „ํšŒ์ฐจ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„(14)๋ณด๋‹ค ์ž‘์œผ๋ฉด(๊ฒน์น˜๋ฉด) ์นด์šดํŒ…ํ•˜์ง€ ์•Š๊ณ ,

17, 20, 23์ฒ˜๋Ÿผ ์‹œ์ž‘์‹œ๊ฐ„์ด ์ „ํšŒ์ฐจ์˜ ๋์‹œ๊ฐ„(14, 20, 23) ๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฐ ๊ฒฝ์šฐ์—๋งŒ ์นด์šดํŒ…์„ ํ•ด์ฃผ์—ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ์œ„ํ•ด pop(0) ๋Œ€์‹  pop()์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก input ๋ฆฌ์ŠคํŠธ๋ฅผ

  1.์ž‘์—…์™„๋ฃŒ์‹œ๊ฐ„ - 2.์ž‘์—…์‹œ์ž‘์‹œ๊ฐ„   ์ˆœ์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ๋‹ค.

# testcase `.sort(key=lambda x: (-x[1], -x[0])` ์†ŒํŒ…๊ฒฐ๊ณผ

# testcase 1
[[23, 24], [20, 23], [17, 20], [8, 18], [4, 14]]

# testcase 2
[[20, 24], [12, 24], [21, 23], [14, 23], [1, 22], [2, 19], [15, 16], [6, 15], [6, 15], [1, 4]]

# testcase 3
[[23, 24], [20, 24], [9, 24], [20, 23], [16, 22], [13, 22], [17, 21], [5, 21], [18, 19], [13, 19], [13, 16], [11, 15], [7, 15], [2, 14], [2, 7]]

 

์ฝ”๋“œ

T = int(input())

for tc in range(1, T+1):
    N = int(input())
    a = [list(map(int, input().split())) for _ in range(N)]
    a.sort(key=lambda x: (-x[1], -x[0]))

    s, e = a.pop()
    cnt = 1
    while a:
        c_s, c_e = a.pop()
        if e <= c_s:  # ํ˜„์žฌ ์‹œ์ž‘์‹œ๊ฐ„์ด ์ „ํšŒ์ฐจ์˜ ๋์‹œ๊ฐ„๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋ฉด
            s, e = c_s, c_e  # ๊ฐฑ์‹ 
            cnt += 1

    print("#{} {}".format(tc, cnt))

 

๋Œ“๊ธ€