▶ 코드

 

# 문제     : 서류,면접 등수가 모두 자기보다 낮은게 있으면 OUT

# 아이디어 : 1 .서류등수 기준으로 오름차순 한 다음,
#            2. 서류등수 1등인사람의 면접점수를 min값으로 두고,
#            3. 서류등수가 올라가는 순서로 되어있으므로, 그 다음번 원소의 면접등수는 앞에꺼보다 무조건 높은등수여야만 한다.
#            4. (따라서 min값을 계속 갱신해 나가야 한다)


T = int(input())

for _ in range(T):
    
    n = int(input())
    s = [0]*(n+1)
    
    # 입력
    for i in range(n):
        a, b = map(int, input().split())
        s[a] = b
    #print(s)

    min_number = s[1]           # 서류등수 1등인 사람의 면접등수 

    c = 0
    for i in range(2, len(s)):  # 서류점수 2등~ n등까지 차례대로 면접등수 검사 
        if s[i] > min_number:
            #print('걸러진것->(', i, s[i], ')')
            c += 1
        else:
            min_number = s[i]
    print(n - c)
    

# 정답 : https://pacific-ocean.tistory.com/343



'''시간초과'''
'''
#t=[[3,2],[1,4],[4,1],[2,3],[5,5]]
#t=[[3,6],[7,3],[4,2],[1,4],[5,7],[2,5],[6,1]],
# 배열에서 둘다 높아지는 경우 OUT

T = int(input())

for _ in range(T):
    n = int(input())
    t = []
    for i in range(n):
        t.append(list(map(int, input().split())))
        
    t1 = sorted(t, key=lambda x: x[0])
    t2 = sorted(t1, key=lambda x: x[1])
    #print(t2)

    c = 0
    i = 0
    j = 1
    length = len(t2)

    while j < len(t2):
        if t2[i][0] > t2[j][0] or t2[i][1] > t2[j][1]:
            i += 1
            j += 1
        else:
            #print('삭제할것->', t2[j])
            t2 = t2[:j] + t2[j+1:]
            #print('t2다시 ->', t2)
            c += 1
                
    print(length-c)
'''

'코테 기본개념 > 그리디' 카테고리의 다른 글

[백준 2875] 대회 or 인턴  (0) 2020.05.05
[백준 10610] 30  (0) 2020.05.05
[백준 1931] 회의실배정  (0) 2020.05.03
[백준 5585] 거스름돈  (0) 2020.05.03
[백준 11047] 동전 0  (0) 2020.05.03
[백준 11399] ATM  (0) 2020.05.03