2017년에는 80점짜리 1문제 풀어서 티셔츠 받고, 2018년에는 3스테이지까지 풀고 체력이 못 버텨서 티셔츠만 받고 포기했었습니다.
결국, 제대로 참가한 건 올해가 처음입니다. 근데 올해는 여름학교때문에 처음 2일을 날려먹었네요. 그래도 1스테이지니까 상관 없어요.
작년에 비해 난이도가 쉽다/어렵다 같은 말이 많은 것 같은데, 저는 딱히 생각 안 하고 있습니다. 그냥 풀 수 있으면 풀고 못 풀면 던지고…
점수는 연습문제 제외 2000점 만점에 1707점입니다. 본선을 갈 수 있는지는 모르겠네요.
작년에는 3000점 만점에 2100점이면 갔다는데 올해는 작년이랑 난이도도 다르고, 문제 배점도 달라서 예측하기가 어렵습니다:(
연습문제 - 비밀번호 검사
문제에서 요구하는대로 코드를 짜면 됩니다.
1 |
|
연습문제 - 숫자 인식하기(output only)
파일을 윈도우 메모장으로 열면 줄바꿈이 제대로 되지 않습니다. 다른 에디터로 열고 눈으로 풀면 됩니다.
1스테이지 - 요리 제작
i번째 재료의 개수를 Ai, 스테이크 하나를 만드는데 필요한 i번째 재료의 개수를 Bi라고 합시다.
정답은 당연히 min(floor(Ai/Bi))가 됩니다. Bi가 0인 경우를 조심합시다.
1 |
|
1스테이지 - 달팽이 게임
이상하게 N <= 5에서 WA가 나오길래 N <= 5인 경우는 하드코딩을 했습니다.
달팽이 배열을 구현하면 됩니다.
1 |
|
1스테이지 - 최대 HP
3번 쿼리가 들어오면 체력이 최대가 됩니다.
그 상황을 잘 캐치합시다.
1 |
|
1스테이지 - ID 확인
문제에서 하라는 대로 하면 됩니다.
1 |
|
1스테이지 - 우산
문제에서 하라는 대로 하면 됩니다.
1 |
|
1스테이지 - 색상표(output only)
풀이 생략
2스테이지 - 약수(94점)
√B까지 소수를 구해준 뒤, 소인수분해를 해주면 됩니다.
100점 풀이도 비슷할 것 같은데 아직은 잘 모르겠습니다.
+) 아래 수식을 사용해 계산하면 100점을 받을 수 있습니다. (코드는 여전히 94점 코드입니다.)
1 |
|
2스테이지 - 수도관
변수 l, r을 관리할겁니다. 두 변수는 각각 현재 굵은 수도관이 존재할 수 있는 y좌표의 하한과 상한을 나타냅니다.
만약 다음 점에 이어주기 위해서 놓아야 하는 굵은 수도관이 [l, r]구간 사이에 있다면 굵은 수도관을 추가할 필요가 없고, [l, r]구간에 없다면 새로운 수도관을 추가해야 합니다.
1 |
|
2스테이지 - 신호등
각 격자점마다 정점을 4개씩 만들어줍니다. 4개의 정점은 각각 왼쪽, 오른쪽, 위, 아래를 가리킬 때의 상태를 의미합니다.
그래프를 잘 만든 뒤, BFS 등의 알고리즘으로 최단 거리를 구해주면 됩니다.
1 |
|
스테이지2 - 카트라이더 경험치
TSP문제와 거의 똑같은 문제입니다.
Bit DP를 잘 돌려줍시다.
1 |
|
2스테이지 - 돌 밀기(output only)
풀이 생략
3스테이지 - 마비노기 인벤토리(output only, 90점)
풀이 생략
3스테이지 - 가위바위보
Union Find를 해주면서 각 집합의 크기를 구하면 됩니다.
1 |
|
3스테이지 - 넥슨 사진관
어떤 구간에서 홀수 번 등장하는 캐릭터가 중앙에 서게 됩니다.
세그먼트 트리에서 구간의 모든 원소를 xor한 값을 관리해주면 됩니다.
하루동안 고민하고 3분동안 코드를 짜서 맞은 문제입니다:(
1 |
|
3스테이지 - 회 문화의 회문화
S를 입력 받으면, S 뒤에 S를 다시 한 번 붙여줍니다. (cin » S; S += S;)
처음에는 [0, n)구간이 팰린드롬인지 확인해줍니다.
그 다음에는 [1, n+1)구간이 팰린드롬인지 확인합니다. 이는 맨 앞 글자만 맨 뒤로 보낸 것을 의미합니다.
그 다음에는 [2, n+2)구간이 팰린드롬인지 확인합니다. 이는 맨 앞 두 글자를 맨 뒤로 보낸 것을 의미합니다.
…
이런 방식으로 답을 구하면 되는데, 특정 구간이 팰린드롬인지 확인하는 것을 빠르게 해야 합니다.
이것은 manacher algorithm으로 해줄 수 있습니다.
1 |
|
4스테이지 - VIP 쿠폰(58점)
permutation으로 O(N! * N)을 돌리면 17점을 받을 수 있습니다.
적당한 정렬 기준을 잡아서 정렬을 한뒤, O(n * 2^n)완전탐색을 하면 58점을 받을 수 있습니다.
58점 풀이를 dp느낌으로 하면 100점이 나올 것 같은데 잘 모르겠습니다.
1 |
|
4스테이지 - 빨간, 파란 점 연결(0점)
못 풀었습니다.
4스테이지 - 메이플스토리 연주회(65점)
KMP + O(N^2)DP 조합으로 65점을 받을 수 있습니다.
100점 풀이는 감이 안 옵니다.
1 |
|
5스테이지 - 메이플스토리 파티 구성
모스 알고리즘을 사용하면 쉽게 풀 수 있습니다.
중복 처리가 까다로운데, 각 직업별로 소수를 배정해준 다음에 모스 알고리즘으로 굴리면서 해싱을 하면 됩니다.
추가할 때는 곱해주고, 제거할 때는 모듈러 인버스로 잘 처리하고…
1 |
|
5스테이지 - 카트 발사
못 풀었습니다.