https://www.acmicpc.net/problem/1946
개요
업로드 한지 거의 한 달 반이 다 되어 가는데, 코딩에 손을 놓은 건 아니고 알고리즘을 잠시 뒤로하고 자바스크립트와 장고 공부를 하고 있다. 한 가지 우물만 너무 깊게 파고 있다는 생각이 들어서 시작한 공부들인데, 양이 생각보다 많아 기존에 생각하던 알고리즘 병행은 조금 힘들어졌다. 집중이 너무 안돼서 오래간만에 접속해 한 문제를 풀어봤는데, 그리 오랜 시간이 지나지 않았는데도 감이 많이 떨어진 게 느껴지더라. 최소한의 병행의 필요성을 느꼈다.
문항은 크게 의미있는 건 아니고, 감 좀 끌어올릴 겸 적당한 난이도의 문제를 골랐다. 수수께끼 같은 문항인데, 조금만 주의를 기울이면 금방 답이 도출할 수 있는 듯하다. 포인트는 기준점을 잘 잡는 것 정도.
추상적 구현
- 두 점수 중 필기 점수를 기준으로 정렬을 시킨다.
- 문제의 논리를 이해하는 게 살짝 까다로울 수 있는데, 매 루프마다 순위의 최댓값을 갱신시키면 어느 정도 길이 보인다.
# PYTHON CODE
import sys
n1 = int(sys.stdin.readline())
for _ in range(n1):
n = int(sys.stdin.readline())
score_list = []
cnt = 1
for _ in range(n):
a, b = map(int, sys.stdin.readline().split())
score_list.append([a, b])
score_list.sort()
max_score = score_list[0][1]
for i, j in score_list[1:]:
if max_score > j:
cnt += 1
max_score = j
print(cnt)
이틀에 한 문제 정도는 시간을 들일만하지 않나 싶다.
'알고리즘 > 구현' 카테고리의 다른 글
[JavaScript] 2019 KAKAO 크레인 인형뽑기 (0) | 2022.05.02 |
---|---|
[JavaScript] 2021 KAKAO 숫자 문자열과 영단어 (0) | 2022.05.02 |
[JavaScript] 2022 KAKAO 신고 결과 받기 (0) | 2022.04.29 |
[Python] union-find (0) | 2021.10.09 |