본문 바로가기
PS/AtCoder

AtCoder Beginner Contest 222 참여후기 (ABC 222)

by Nahwasa 2021. 10. 9.

Contest : https://atcoder.jp/contests/abc222

Editorial : https://atcoder.jp/contests/abc222/editorial

 

 

  AtCoder는 구글 번역기 돌려도 제대로 번역이 안되서 영어로 읽어야한다...

수식 포함된 영어는 특히 읽기가 어려워서 머리에 잘 안들어온다 ㅠ 영어공부좀 해야지

특히 C번에서 문제 대충 읽다가 이해 잘못해서 시간을 쓸데없이 많이 들이다보니 문제를 D번까지밖에 못봤다.

Beginner 라고 써있으면서 많이 어려웡..

아직 늅늅이가 맞으니 어려운게 맞을듯함.

 

 

아직 레이팅 엄청 낮은 늅늅이지만 그래도 꾸준히 올라가긴 하니 다행임.

 

 

  Editorial이 이미 공개되었으니 별도로 해설은 하지 않고 대회진행중에 푼 문제에 대해 후기만 작성함.

깃헙 : https://github.com/NaHwaSa/AtCoder/tree/master/ABC222

 

 

A : 엄청 쉬웠다. 그냥 해당 언어로 입력 받는 방법은 아냐고 묻는 문제인듯.

 

B : A 와 동일하다. 하지만 거기에 if문을 사용할줄 아냐고 추가로 묻는 문제이다 ㅋㅋ

 

C : 문제만 잘 이해했으면 간단한 시뮬레이션 문제인데.. 괜히 지레짐작해서 비겼을 때 처리방식 다르게 하기도 했음;. 게다가 예제도 좀 제대로된걸로 해주지 전체 이긴 횟수와 관계없이 매판 횟수만 세면 되는 예제를 보여줘서 더 헤맸었다. 결국 지문 다시 정독하고 코드 쏵 갈아엎고 통과하느라 쓸데없이 시간을 많이 쏟았음. 다시 짜면 더 짧고 간단하게 가능할 것 같다. 아무튼 그냥 매번 정렬하면서 순위체크하는 시뮬레이션 문제임.

 

D : DP같이 생겨서 일단 공책에 그려보다보니 DP로 충분히 가능해보여서 그렇게 진행함. dp[x][y]를 n이 y일 때, 수열의 마지막 수가 x일 때 가능한 갯수로 정의함.

DP 진행 방식을 표로 그려보면 다음과 같음. 

3
1 2 3 3
1 5 6 8

입력이 위와 같을 경우 DP 결과는 아래와 같음. 행은 ai, bi의 값(0~3000) / 열은 N을 나타냄.

  n=1 n=2 n=3 n=4
0        
1 1      
2   1    
3   1 2 2
4   1 3 5
5   1 4 9
6     4 13
7       13
8       13

각 열의 a[n]~b[n]까지 배열에 값이 들어가 있는 것이 보일것임.

이 때 dp[x][y]의 값은, dp[0][y-1] 부터 dp[x][y-1] 까지의 합임.

예를들어 dp[4][3]은

  n=1 n=2 n=3 n=4
0        
1 1      
2   1    
3   1 2 2
4   1 3 5
5   1 4 9
6     4 13
7       13
8       13

위와 같이 빨간 부분의 합임.

 

그럼 최종적으로 마지막 n에 들어있는 모든 값의 합이 총 경우의 수임. 여기서는 2+5+9+13+13+13이 됨.

 

 

---

 

AtCoder가 시간도 괜찮게 개최하고 문제도 Codeforces에 비해 좀 쉽게 내서 참여하긴 참 좋은데.. 작성을 어떻게 한건지 번역기 돌리면 아예 못알아먹게 나옴 ㅠ

물론 영어로 읽는게 정확하긴 한데, 그래도 한글로 번역기 돌려서 한번 읽고 영어로 다시 읽으면 이해하기 참 좋은데 AtCoder는 그게 불가하니 좀 아쉬움.

(번역기 돌리면 이런식임)

 

아마 레이팅을 높히려면 일단 영어공부가 더 필요하지 않을까 싶음 ㅋㅋㅋㅋ

댓글