포도가게의 개발일지

python 백준 1946 신입사원 본문

백준

python 백준 1946 신입사원

grape.store 2021. 8. 30. 13:37
반응형

 

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

 

1946번: 신입 사원

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성

www.acmicpc.net

 

문제 : 선발할 수 있는 신입사원의 최대 인원수

접근법

 - 최대 최소문제이며 사이클이 돌지않음

 - 그리디로 접근하였다

 - subprob의 최적의 해가 total prob의 최적의 해와 일치 한다.

 - matrix를 정렬 하였을때 a,b중 하나라도 1등인애는 맨앞에 가게 되므로 반드시 신입사원 으로 뽑힌다

 - 그리고 1등 이후의 등수들은 b의 등수가 앞선애보다 낮은 등수이기만 하면 뽑히게 된다.

1 2 3 4 5
4 3 2 1 5
import sys
sys.stdin = open('inputs.text')

n = int(sys.stdin.readline())
for _ in range(n):
    t1 = int(sys.stdin.readline())
    matrix1 = [0]*(t1+1)
    for _ in range(t1):
        a,b = map(int,sys.stdin.readline().split())
        matrix1[a] = b
    min1 = 100001
    count1=0
    for data1 in matrix1[1:]:
        if min1>data1:
            min1 = data1
            count1+=1
    print(count1)

 

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

python 15903 카드 합체 놀이  (0) 2021.09.13
python 백준 5557 1학년(dp)  (0) 2021.09.01
python 백준 1931 회의실 배정  (0) 2021.08.30
python 백준 1904 01타일  (0) 2021.08.26
python 백준 2638 치즈  (0) 2021.08.25
Comments