5문제이고, 난이도는 백준 실버 1 정도였다.
1번 문제는 전형적인 BFS문제였다. BFS문제의 난이도는 백준에서 실버 1~3정도이다. 단순히 BFS만 하면 실버 3이고, BFS돌면서 무언가를 하면 실버 1~2정도인데, 무언가를 많이 하지는 않지만, 조건을 조금 고려해야해서 실버 3 난이도는 절대 아니라고 생각한다. 실버 1~2정도의 난이도라고 생각한다. 하지만 BFS 실버 3문제를 풀었다면 충분히 어렵지 않게 풀 수 있을 정도라고 생각한다.
2번 문제는 DP문제였다. 노골적으로 DP를 말하고 있었는데, 1차 코딩 테스트의 4번 문제 업그레이드 시킨 문제였다. 입력값의 범위가 정말 컸다. 하지만 DP로 풀지 않을 수 있었던게 제한 시간이 똑같이 1분이어서 범위가 그렇게 크더라도 시간초과가 절대 날 수가 없기 때문에 시간이 없다면 DP로 풀지 않아도 됐다고 생각한다. 하지만 정석으로 간다면 난이도는 실버 1 ~ 골드 4 사이였다. 참고로 면접 때 코딩테스트 질문도 하는데 DP로 풀지 않았다면 그때 DP로 풀면 시간복잡도를 크게 줄일 수 있다. 라고 말하면 되었을 거다. 나는 DP로 풀었다.
2번 문제는 DP문제였다. 노골적으로 DP를 말하고 있었는데, 1차 코딩 테스트의 4번 문제 업그레이드 시킨 문제였다. 입력값의 범위가 정말 컸다. 하지만 DP로 풀지 않을 수 있었던게 제한 시간이 똑같이 1분이어서 범위가 그렇게 크더라도 시간초과가 절대 날 수가 없기 때문에 시간이 없다면 DP로 풀지 않아도 됐다고 생각한다. 하지만 정석으로 간다면 난이도는 실버 1 ~ 골드 4 사이였다. 참고로 면접 때 코딩테스트 질문도 하는데 DP로 풀지 않았다면 그때 DP로 풀면 시간복잡도를 크게 줄일 수 있다. 라고 말하면 되었을 거다. 나는 DP로 풀었다.
SQL문제는 JOIN을 여러번 사용하는 문제였는데, 이어지는 컬럼을 유의하면서 풀면 금방 풀 수 있는 문제였다.
WEB문제는 또 할말이 없다. id값을 가진 dom객체를 가져오려면 getelementid?이걸 해줘야 하는데 우선 이것 조차 외우지 못했다.
문제를 업그레이드 시켜서 내면 좋은 점이 문제 이해가 쉬워진다. 저번에 푼 문제기 때문에 문제를 읽어서 이해하는데 훨씬 가벼운 느낌이 들고, 긴장도 조금 사라지는 것 같았다. 원래 이렇게 하는지는 몰랐다. 그렇지만 1차 코딩테스트 끝나고 비슷한 문제 위주로 공부방향을 잡았다. 특히 위상정렬이 또 나오면 다음엔 맞춘다는 마인드가 생겼는데 아쉽게 나오지 않았다. 웹과 SQL을 확실히 풀 수 있는 사람이라면 알고리즘은 1문제를 맞춰도 합격할 수 있는 것 같다. 웹, SQL, 알고리즘 2개면 무조건 합격인 것 같다. 나는 SQL, 알고리즘 3 이렇게 합격을 했다.
DFS, BFS, 그리디 이게 확률이 가장 높다. 브루트 포스와 백트래킹은 약간의 애드혹의 무기를 쥐어주는 느낌이다. 알고리즘을 정교하게 몰라도 깡으로 풀려면 노가다적인 코드를 짤 수 있어야 하는데 그게 브루트 포스와 백트래킹이다. 많은 도움이 됐으면 좋겠어서 열심히 적어본다.