-문제 풀이: https://www.acmicpc.net/problem/1946

 

-정답 풀이:

0열을 기준으로 오름차순 정렬하면 서류에서 우수한 사람들을 가릴 수 있다. 

기본적으로 서류에서 0등은 뽑히므로 count=1로 시작한다. 

서류에서 우수한 사람보다 면접에서 더 우수하면 그 사람은 면접에서라도 뛰어나므로 채용이 된다. 

채용된 사람의 면접 점수를 기준으로 다음을 이어나가면 된다

for _ in range(int(input())):
    n=int(input())
    data=[]
    for _ in range(n):
        data.append(list(map(int,input().split())))
    zero=sorted(data,key=lambda x: x[0])
    #선발인원 수 
    count=1
    result = zero[0][1]
    
    for i in range(1,n):
        if zero[i][1] < result:
            count+=1
            result=zero[i][1]       
    print(count)

 

-시간초과 풀이: 

이중 for문으로 풀었는데 이렇게 하면 시간복잡도가 n**2가 되어서 시간초과가 발생한다 

for _ in range(int(input())):
    n=int(input())
    data=[]
    for _ in range(n):
        data.append(list(map(int,input().split())))
    zero=sorted(data,key=lambda x: x[0])
    one = sorted(data, key=lambda x: x[1])
    count=0
    
    for i in range(n):
        for j in range(i+1):
            if zero[j][1] > zero[i][1]:
                count+=1
    print(n-count)

 

 

'백준 > Greedy' 카테고리의 다른 글

[그리디/백준] 4796번: 캠핑  (0) 2022.06.29
[그리디/백준] 1715번: 카드 정렬  (0) 2022.06.29
[그리디/백준] 13305번: 주유소  (0) 2022.06.27
[그리디/백준] 10610번: 30  (0) 2022.06.26
[그리디/백준] 2217번: 로프  (0) 2022.06.24

+ Recent posts