코딩테스트 문제는 알고리즘 3문제 SQL 1문제: 총 4문제가 출제됐고 그 중 알고리즘 3문제를 풀었다.
총 2시간이 주어졌고, Python으로 풀었다.
1번 문제:
난이도: 백준 브론즈1~실버5 -> Solved
구현 문제이긴 한데, 따지고 보면 그리디 유형 같다.
아주 가볍게 생각하고 3분만에 풀고 예시 테스트 케이스를 돌렸을 때 정답이 나와서 실행했더니 10개 중에 7개가 틀렸었다.
그래서 반례를 생각하고 하여튼 좀 헤매다가 겨우 풀었다.
푸는데 20분 정도 소요됐다.
2번 문제:
난이도: 백준 실버2~실버1 -> Solved
로봇 청소기가 등장해서, DFS BFS 유형인가 싶었다. 그런데 이거는 뭐 전혀 처음 보는 느낌이었다.
규칙을 찾으려고 노력했다. 그래서 결국 찾아냈고 답을 구했다.
푸는데 30분 정도 걸렸다.
3번 문제:
난이도: 백준 실버1~골드5 -> Solved
전형적인 삼성 코딩테스트 유형의 문제였다. 최근에 삼성 유형을 풀어봤어가지고 한번 도전해봤다. 당장 별 생각 없이 DFS로 풀어야겠다는 생각을 갖고 DFS로 쭉 밀고 갔다. 그런데... DFS가 프로그래머스 상에서 좀 쓰기에 고려할 부분들이 좀 있다.
1. solution()함수 내부에서 선언한 변수들에 대해서 dfs() 함수에도 쓰이려면 함수 각각에 대해서 global을 처리해줘야 했다. 이거 때문에 굉장히 곤란했다.
2. DFS를 할려면,
import sys
sys.setrecursionlimit(10**9)
이 구문을 반드시 추가해줘야 한다. 그냥 아무 생각없이 추가해야겠다. 런타임에러가 엄청 떠서 굉장히 당황했다. 다행히도 추가 후에 해결이 됐다. 푸는데 총 1시간이 걸렸다.
4번 문제
SQL은 저번 인턴매칭 때 열심히 대비했는데 엄청 어려웠다. 이번에는 준비 안하고 그냥 코테만 기다렸었다. 이번 SQL문제도 내가 설사 벼락치기 했어도 어차피 모르는 유형이었다. 랭크와 서브쿼리를 활용해야 한다고 들었다.