[BOJ] 1946: 신입사원

이슬비·2023년 2월 17일
0

Algorithm

목록 보기
87/110
post-thumbnail

거의 다 생각했는데 ...!

1. 내 풀이: 성공

import sys
input = sys.stdin.readline

t = int(input())

for _ in range(t):
    n = int(input())
    apply = []
    for _ in range(n):
        apply.append(list(map(int, input().split())))

    paper = sorted(apply, key=lambda x: x[0])
    minimum = paper[0][1]
    cnt = 1

    for i in range(1, n):
        temp = minimum
        minimum = min(paper[i][1], minimum)
        if minimum != temp:
            cnt += 1

    print(cnt)

메인 아이디어는 어떤 하나(서류 or 면접)로 정렬하고 나머지 하나의 등수로 판단해주면 되는 것이다.

거의 다 생각했는데 두 번째 케이스를 어떻게 반영할까 생각하다가 minimum 값을 갱신해주는 것으로 해결했다.

2. 다른 풀이

import sys
input = sys.stdin.readline

T = int(input())

for _ in range(T):
    N = int(input())
    rank = [list(map(int, input().split())) for _ in range(N)]
    rank_asc = sorted(rank)
    top = 0
    result = 1
    
    for i in range(1, len(rank_asc)):
        if rank_asc[i][1] < rank_asc[top][1]:
            top = i
            result += 1
    
    print(result)

풀이 출처: https://velog.io/@ledcost/%EB%B0%B1%EC%A4%80-1946-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8B%A0%EC%9E%85-%EC%82%AC%EC%9B%90-%EC%8B%A4%EB%B2%841-%EA%B7%B8%EB%A6%AC%EB%94%94

꽤나 비슷한 풀이~

3. 마치며

실버1으로 가니까 좀 더 고려해야할 게 많을 뿐 ⭐️조건⭐️ 을 따져야한다는 건 똑같았다! (당연)

profile
정말 알아?

0개의 댓글