알고리즘 문제풀이 공부

코포 일기 : Codeforces Round #733 (Div. 2)

_MOLKANG 2021. 7. 18. 08:09

대회 결과

4솔로 저번 Codeforces Round #726 보다 레이팅이 더 많이 올라갔다. 전체적인 느낌은 풀이는 생각이 나는데 구현이 꽤 까다로웠다. E번도 case work를 해야 하는 느낌이 들기도 하고, 전체적으로 구현을 연습하기에 좋은 문제들이었다. 결과는 꽤 만족스러웠던 것 같다.

 

A : Binary Decimal

각 자릿수중에 최댓값을 그대로 출력하면 된다. 자릿수별로 끊어서 생각하면 매우 쉽게 알 수 있다,

 

B : Putting Plates

(1,1)에서 시작해서 간격을 띄워 가며 접시를 설치하는 것을 생각하면 된다. 풀이는 매우 쉬우나 구현이 약간 더러웠다.

 

C : Pursuit

내 점수 배열을 A, Ilya의 점수 배열을 B라고 할 때,  A에는 100, B에는 0을 A의 점수 합 >= B의 점수 합이 될 때까지 추가해주는 것을 생각하면 쉽게 풀린다. 이 때 배열이 4의 배수가 될 때마다 점수 합이 변화하는 것을 잘 처리해야 한다.

 

D : Secret Santa

일단 들어줄 수 있는 소원은 최대한 들어주는데, 이 작업 후에 한 명만 소외되는 경우를 방지하기 위해 아무에게도 선택받지 못한 사람의 소원을 우선적으로 들어줘야 한다. 그 후에 선물을 줄 사람을 정하지 않은 사람들의 집합 A와 선물을 받지 못한 사람들의 집합 B를 배열로 만들어 매칭시키는데, 이 때 주는 사람과 받는 사람이 같아지지 않아야 한다. A와 B 모두에 해당하는 사람끼리는 따로 매칭해주는 방법으로 해결할 수 있다. 풀이를 생각하는 것과 구현하는 것 모두 꽤 골치아팠던 문제.