1946 - python

고태희·2021년 12월 3일
0

알고리즘

목록 보기
5/15

문제

입력

제한시간 2초 메모리제한 256 MB

예시

입력
2
5
3 2
1 4
4 1
2 3
5 5
7
3 6
7 3
4 2
1 4
5 7
2 5
6 1
출력
4
3

나의 풀이

import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
    n = int(input())
    arr = [0]*(n+1)
    for _ in range(n):
        a,b = map(int,input().split())
        arr[a] = b
    cnt = -1
    for i in range(1,n+1):
        if arr[i] > arr[i-1]:
            cnt += 1
    print(n - cnt)

배열을 만들어 서류심사 성적을 index로, 면접성적을 value로 하여 정렬 필요없게 배열에 값 저장
for문으로 순회하면서 인덱스가 커졌는데 값도 커지면 이전 사람보다 둘 다 잘본 사람이라 생각한다.

=> 오답

풀이

import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
    n = int(input())
    arr = [0]*(n+1)
    for _ in range(n):
        a,b = map(int,input().split())
        arr[a] = b

    cnt = 0
    m = arr[1]
    for i in range(2,n+1):
        if arr[i] > m:
            cnt += 1
        else:
            m = arr[i]
    print(n - cnt)

이전것과만 비교하지 않고 min값을 선언하여( m = arr[1] ) 이 값보다 크면 서류, 면접 성적이 모두 높은 것이므로 cnt + 1 하고 작으면 min값을 업데이트 해준다.

0개의 댓글