이 블로그 검색

2018년 6월 23일 토요일

삼성전자 대학생 프로그래밍 경진대회(SCPC) 2018 1차예선 후기

알고리즘을 접하고나서 처음으로 참가한 대회!!!!
1차, 2차(온라인) 예선 그리고 본선대회가 있는데 작년에는 1문제가 1차예선 컷이었단다.
그런 말을 들으면서 시작하니 한 문제만 풀자.. 이런 마음이 되게 컸던듯


총 다섯 문제가 나왔고 나는 세 문제 풀고 두 문제는 오랫동안 생각해야되거나 못풀것같아서 
그냥 월드컵 응원할겸 술먹으러 나갔다.

아쉬웠던건 온라인 저지에서 하던 습관이 그대로 나타났다.. 제출이 무제한인 곳에서
코딩하고 내고 틀리면 살짝 수정해서 내고..
대회는 제출 횟수에 따라 등수가 떨어진다는데..ㅠㅠ

내가 푼 세문제는 쉬웠나보다 4번 5번에 비해만점자도 엄청 많았다!!


1번 문제는 버스타기라는 문제였다.
문제 보고 처음에 이분탐색?? 하면서 풀었었는데 시간초과가 났고
이때 오기가 생겨서 시간만 줄이느라 한 두세번 제출했다.
그냥 구현인가?? 하면서 풀었더니 부분점수로 27점을 맡았을때 아 이거구나!
그리고 좀 더 수정해서 내니까 맞았다.

기본 생각은 한번 정렬을 하고 제일 첫번째 놈을 버스에 태운다.
그 후 앞 놈부터 차례대로 태울지 말지 결정하고 안태우면 그대로 큐에 push 태우면 한번 팝을 한 뒤 push
O(N)이라 무난하게 통과되었다.


2번 문제는 회문인 수의 합
그냥 팰린드롬 문제였고 완탐으로 가능하다고 생각했다.
임의의 10000이하의 자연수를 줄 때 최대 팰린드롬 세 개의 합으로 이루어지는지를 찾는 문제였다.
그냥 10000이하 팰린드롬을 다 구했고 그것들을 조합해 모든 가능한 수를 전부 체크했다.
그리고 그냥 출력하면 된다.
쉬운문제였다.


3번 문제는 우주정거장인데..
2번까지 풀고 3번문제를 봤을때 문제가 이해가 되지를 않아서 그냥 포기할까 했다.
엄청 잘하는 친구한테 문제 이해가 안된다니까 밥먹고 다시 보라고해서 ...
그냥 밥먹었다. 한 두시간? 밥먹고 놀다가 다시 보니까 정말 이해가 됐다!!
사실 문제를 아예 잘못 읽었었다. 무튼 역시...박트리센세...
문제는 이해가 되었는데 풀이를 도저히 모르겠었다.. 그냥 구현해버렸다.
구현 방법은 WHILE문안에서 1~N까지 계속 찾는다. 무엇을?
(간선 두개를 갖고있는 점 && 이 두 정점이 서로 이어져 있다) 이러면 해당 간선을 지워버린다.
이런식으로 하나씩지워서 더이상 안지워지면 끝낸다.




처음에 제출하고 시간초과가 나길래 계속 시간만 줄였다.... 알고보니 그냥 틀린거였고
세그먼트 폴트가 나왔다.
뭐가 틀렸지 하다가 한 줄을 잘못쓴걸 6번 제출하고서야 깨달았고 고쳐서 내니까 맞았다..

이렇게 대회는 끝나버렸다. 4번 5번은 사실 문제 살짝 보고 만점자수를 보고 그냥 포기했다.
처음 참여하는 대회인데 쉽게 포기한것 같아 아쉽다.
2차를 가게 된다면 정말 힘내서 풀어봐야지!!!

댓글 없음:

댓글 쓰기

[백준 16236] 아기 상어

[ 백준 16236 : 아기 상어 ] 2018 삼성전자 sw직무 하반기 기출문제입니다. 역대 삼성전자 기출문제가 그렇듯 역시나 BFS,DFS,완탐,DP,단순구현 입니다. 저는 문제를 단순히 BFS로 풀어갔습니다. 조건만 잘 지킨다면 한번에 ...