Problem Solving/Codeforces

Codeforces Round #624 (Div. 3) solution

happykoa 2020. 2. 26. 04:22

2020.02.24 저녁에 열린 Codeforces Round #624 (Div. 3) 풀이를 해보려합니다.

저는 A,B,C밖에 풀지 못했고 자세한 이야기는 풀이 다음에 적어놓겠습니다.

 

대회 문제 목록: https://codeforces.com/contest/1311

 

Dashboard - Codeforces Round #624 (Div. 3) - Codeforces

 

codeforces.com

 

대회 에디토리얼: https://codeforces.com/blog/entry/74224

 

Codeforces Round #624 (Div. 3) Editorial - Codeforces

 

codeforces.com

 

저는 에디토리얼은 최대한 나중에 보려하는 편이라 아직 보지 않았고, 일단 제 풀이를 정리하려 합니다.

코드들은 모두 깃헙 링크로 남겨놓겠습니다.

 

A. Add Odd or Subtract Even

그냥 두 숫자의 대소 비교, 숫자 차이를 확인하면 됩니다.

모든 경우에 한해서 답이 0,1,2 중 1개로 결정된다는 것을 알면 바로 풀 수 있었습니다.

 

제출 코드: https://github.com/shinkeonkim/Today_PS/blob/master/codeforces/Round%20%23624/A.p

 

B. WeirdSort

개인적으로 좀 많이 고민한 문제입니다.

생각해보니, 문제에서 주어진 p 배열에 있는 숫자 중 하나를 i라 한다면, i와 i+1번째에 있는 숫자는 swap할 수 있다는 것입니다.  만약에 이 swap 관계가 계속 끊기지 않고 이어진다면 그 구간안에 있는 숫자들은 정렬이 가능합니다. 그리고 만약 swap 관계들을 이어놓은 구간들을 각각 정렬을 하고나서 모든 숫자들이 정렬되어 있는 상태라면 이는 정렬가능하다는 것이고 아니라면 정렬 불가능이라는 것일 겁니다.

 

제출 코드: https://github.com/shinkeonkim/Today_PS/blob/master/codeforces/Round%20%23624/B.cpp

 

C. Perform the Combo

prefix array, dictionary(map), sort을 활용하면 어렵지 않게 해결할 수 있습니다. 따로 설명할 것은 없을 것 같고 아래 코드에서 활용한 몇 가지 꼼수들은 나중에 한번 제대로 다뤄볼려 합니다.(Ex. try-except로 dictionary에 이 원소가 있는지 확인하는 방법)

 

제출 코드: https://github.com/shinkeonkim/Today_PS/blob/master/codeforces/Round%20%23624/C.py

 

솔직히 대회 결과는 딱히 좋지 않았습니다.

1. 대회 시간 중 30분을 제출할까 말까 고민을 하다가 시작을 해서 3문제밖에 풀지 못했고 

2. 오랜만에 코드포스라 문제를 해석하고 코드를 빠르게 작성하는 게 익숙치않았습니다.

3. 본계와 부계 사이에는 무슨 계정으로 제출할지 고민했고 부계로 하면서 대충대충 하게 된 것 같습니다.

 

프로필(망한 레이팅 살리기 프로젝트 중):

https://codeforces.com/profile/singun119

 

singun119 - Codeforces

 

codeforces.com

떡락한 후 코포 접을뻔

아무튼, 이제 한번 제대로 떨어져봤고 이제 올라가기만 하면 되니 막무가내로 계속 div3, div2를 참가해보겠습니다.

Rmx

'Problem Solving > Codeforces' 카테고리의 다른 글

Codeforces Round # 634(Div. 3) Solution  (2) 2020.04.15
Codeforces Round #627 (Div. 3) Solution  (0) 2020.03.13