Competitive Programming/AtCoder

대회후기: Sumitomo Mitsui Trust Bank Programming Contest 2019

Syphon 2019. 12. 2. 00:32

오늘도 평화롭고 쉬운 AtCoder 대회.

 


A: November 30

두 숫자가 같은지 물어본다. Are you for real??

1분에 AC


B: Tax Rate

나누기 문제. 하지만 round down을 round로 잘못 읽어 WA를 두 번이나 추가.

2 WA 후 9분에 AC


C: 100 to 105

C에 와서야 조금 생각해야 하는 문제가 나왔다. 주어진 6개의 숫자의 합으로 입력된 수 \(n\)을 만들 수 있는지 묻는 문제다. 숫자들이 전부 다 100 부근에서 놀고 있으므로, 입력된 수 \(n\) 또한 100이 들어가는 개수 기준으로 생각해 보아야겠다는 느낌이 들었다. 잘 생각해보면 어렵지 않게 100이 들어가는 개수에 따라 가능해지는 나머지 두 자리 수의 범위가 결정됨을 알 수 있다.

13분에 AC


D: Lucky PIN

주어진 문자열에서 세 숫자만 남기고 지웠을 경우, 남은 세 숫자를 순서를 유지한 채 PIN으로 삼는다. 이렇게 생성 가능한 PIN의 개수를 주어진 문자열에 대해 찾는 문제이다. 지울 숫자의 selection을 bruce force할 수 없으므로 가능한 모든 세 자리 PIN을 bruce force 한다 ㅎㅎ. 각 PIN을 만들 수 있는지만 linear 탐색으로 확인하면 된다.

17분에 AC


E: Colorful Hats 2

RGB 색의 모자를 일렬로 세운 사람들에게 씌워놓았다. 문제의 입력으로, 앞사람 중 자신의 모자 색과 같은 모자를 쓰고 있는 사람의 수를 각 사람에 대해 알려준다. 이 입력을 바탕으로 가능한 모자 색의 배치의 경우의 수를 출력해야 한다. 문제를 처음 보고 나서는 DP가 떠올랐다. 줄에서의 순서와 그 순서에서의 입력값을 이용해 무슨 계산을 할 수 있을지 어렵게 생각하다가, 이렇게 어려운 계산 말고 그냥 \(O(n)\) 풀이가 분명 존재할 것이라는 생각이 들었다. 앞사람부터 한 명씩 확인하면서, 그 사람의 모자 색으로 가능한 색의 개수를 계속 곱해나가면 해결되었다. 그 사람의 모자 색이 결정됨으로써 뒷사람의 모자 색 경우의 수가 바뀔 것 같지만, 그렇지 않다. 각 RGB 색들은 대칭적이기 때문에 가능한 색을 아무거나 정해서 칠해주고 다음 사람의 경우의 수만 살피면 된다.

27분에 AC


F: Interval Running

두 사람이 같은 방향으로 달려 나가고 있다. 각 사람은 \(T_1\)과 \(T_2\)의 시간에 걸쳐 각각 일정한 속도로 달리고, 이 과정은 무한으로 반복된다. 문제의 요구사항은 두 사람이 교차하는 횟수를 확인하는 것이다. 천천히 차근차근 생각해 보면, 총 네 가지 경우로 문제를 나눌 수 있다. 각 경우에 대한 해결 또한 조금만 꼼꼼히 생각한다면 어렵지 않게 할 수 있다. 다만 edge case 하나를 놓쳐서 두 번의 WA가 추가되었다.

2 WA 후 51분에 AC


총평

대회를 뛴 것 같지도 않다. 인생 첫 올솔브이지만 이런 대회는 올솔브를 해야 맞는 것 같다.

잦은 WA가 가장 아쉬운 부분이다. 문제를 빠르게 푸는 것보다는 많이 푸는 것이 중요한 AtCoder 대회에서는 답안 제출에 대해 더 신중해져야겠다.

 

레이팅 변화 894 + 329 = 1223

My Performance: ★

'Competitive Programming > AtCoder' 카테고리의 다른 글

대회후기: AtCoder Beginner Contest 145  (0) 2019.11.16