블로그 언저리인 무언가
2024 SCON 후기 본문
문제 : 2024 SCON
2주전 토요일인 5/18일에 SCON에 참가했다.
작년 팀원 분 중 한 분이 군대에 가시면서 팀이 사라진 바람에
이번 년도는 그냥 적당히 친구들과 나가려 했지만
어쩌다 보니 작년 팀원분과 같은 수업 들으시는 분으로 팀을 구성해서 나가게 되었다.
이날 평소에 하던 알바를 빼고 가는 거라서
상금으로 최소한 시급은 받아야 한다..(?) 라는
불순한 마음가짐으로 대회에 참여했다 ㅋㅋ
A번 (과민성 대장 증후군)
Solve : dkprk11
Code : dkprk11
지금까지는 보통 A번을 내가 잡았었는데
팀원분이 본인해보고 싶다 하셔서 넘겨드렸다.
문제는 대회 중엔 못 읽어봤고 끝나고 읽어보니 그냥 간단한 구현 문제였다.
B번 (팀명 정하기 2)
Solve : he1fire
Code : he1fire
A번을 다른 분이 하셔서 이번 대회는 B번부터 읽어보게 됐는데
문자열 입력 받은 후 주어진 조건에 해당되면 출력하는 간단한 문제였다.
그래도 퍼솔해서 나름 체면은 안 구겼다 휴~
C번 (온데간데없을뿐더러)
Solve : he1fire
Code : he1fire
B번 풀은 이후에 스코어보드를 보니
C를 먼저 풀은 팀이 꽤 있어 쉬운 문제 일거라 판단하고 넘겨받았다.
주어지는 정수를 그냥 잇게 되면 C++에서는 long long 범위를 넘어가기 때문에
문자열로 입력 받아 이어준 후 길이가 짧거나 길이가 같다면 앞부터 비교해
작은 숫자가 나오는 쪽을 출력하게 하면 되는 문제였다.
F번 (피보나치 기념품)
Solve : he1fire
Code : he1fire
이때 D번은 한번 틀리고 잡았던 팀원분이 디버깅을 하는 중이셨고
E번 F번 풀이가 둘 다 나온 상황이었는데
내 생각에 F번 구현이 더 쉬운 것 같아 먼저 진행했다.
피보나치 수열의 정의 상 N%3==0 이라면
2개-1개씩 나누어 주는 방식으로 모두 나눠줄 수 있고
N%3==2인 경우에도 첫 두 수가 1,1이기 때문에
이 두개를 먼저 나눠주고 나머지 기념품을 동일한 방식으로 나눠줄 수 있다.
따라서 N%3==1일때만 1개 빼고 나눠주는 식으로 구현하면 된다.
E번 (수식 고치기)
Solve : he1fire, rkaskan506
Code : rkaskan506
문제를 읽자마자 마지막 2개의 값을 "| T"로 바꾸면 참이 되고
"& F"로 바꾸면 거짓이 되는 것을 바로 깨닫고
N이 최대 2000이므로 N^2으로 1개의 값을
바꾸는 모든 경우의 수를 해보면 되는 문제였다.
이 풀이를 팀원분께 알려주고 F번을 푼 후 D번을 다시 보고 있었는데
디버깅이 꽤 오래 걸려서 내가 코드를 읽어보니
원하는 계산 결과 C를 입력 받지 않고 풀고 계셨다.
이게 무슨,,
D번 (미로 탈출)
Solve : dkprk11, he1fire
Code : dkprk11
처음 풀이로 S, E가 양 끝이면 0,
둘 중 하나가 양 끝이거나 붙어 있다면 1, 아니면 2라고 생각했는데
1번방 아니면 N번방으로만 순간이동이 가능하기 때문에
시작점이 양 끝에 붙어있어야 한다는 사실을 알아내 이를 수정했다.
지문을 좀 더 자세히 읽었으면 페널티를 꽤 줄였을 것 같아서 아쉬운 문제인듯
G번 (시간표 만들기)
Solve : he1fire
Code : he1fire
문제를 읽고 바로 그냥 백트래킹으로 다해보면 되는 거 아닌가?
하는 생각이 들었는데 제한을 잘못보고 안된다고 생각해서
일단 입력 처리를 먼저 하기로 하고 구현중이었는데
팀원이 말해줘서 다시 제한을 읽어보니 강의와 그룹이 최대 15개이므로
최대 경우의수가 2^15 정도라서
진짜 그냥 모든 가능한 경우의 수를 구하는 문제였다.
H번 (아이템 2)
Solve : rkaskan506, dkprk11
Code : rkaskan506
우리가 G번까지 풀었을 때 스코어보드상에서 굉장히 여유가 있는 상황이라
다같이 H번까지만 풀어보는 걸 목표로 잡았었다.
누가 봐도 DP문제인거 같긴 하지만 난 혹시 몰라서
다른 풀이 생각하고 있었는데 역시나 DP였다,,
풀이는 일찍 나왔지만 구현에서 꼬이는 상황이었는데
다행히 잘 디버깅해서 풀 수 있었다.
H번을 풀은 이후에 1시간 정도 남아서 남은 문제들을 읽었는데
I번은 감이 안 와서 J번 아이디어만 몇개 이야기하다가 대회가 끝났다.
그래도 다른 팀들이 H번까지 풀고 페널티로 이기지 않을까 했는데
다들 프리즈 이후에 H번 제출도 안 해서 생각보다 싱겁게
스코어보드상에서 1등이 확정나 버렸다.
작년에 ICPC 예선에서 말린 후로 약간 PS를 놨다가 이번학기 캡스톤 프로젝트 때문에
그래도 꾸역꾸역 다시 했던 게 좀 도움이 된 거 같아서 좋았다.
와중에 끝나고 교내 방송국이랑 인터뷰했는데 팀명이 너무 부끄러웠음
1등할줄 알았으면 좀 간지나게 지을걸,,
'Programming > Etc' 카테고리의 다른 글
2023 SCON 후기 (0) | 2023.05.24 |
---|---|
컴퓨터 바꾼김에 쓰는 VScode 세팅법 (0) | 2021.09.30 |
2020 ICPC Seoul Regional 예선 후기 (0) | 2020.10.11 |
자주 쓰지만 까먹는 문법 모음 (0) | 2020.09.26 |