1. 문제를 꼼꼼히 읽자

몇번을 강조해도 부족할만큼 중요하다고 생각합니다. 여러 유형의 문제를 풀면서도 이부분을 간과하고, 대충 접근하면 잘못된 코드로 수정에만 대부분의 시간을 소모했던 경험이 많았습니다. S기업 SW관련 행사에 갔을 때도 담당자 분이 몇번을 강조하시더라구요! 다시 한번 말씀드리겠습니다. 문제를 제대로 읽는 것이 풀이 시간 단축의 지름길입니다. 

 

2. 입출력의 사이즈를 확인하자

여기서 말하는 사이즈는 입력에 대한 N크기의 사이즈가 아닙니다. 입출력 변수의 자료형 범위를 말하는 것 입니다. 오늘도 문제를 풀다가 출력사이즈가 int 자료형을 넘어가는 부분을 고려하지 못했습니다. 그래서 멀쩡한 코드만 몇번을 리뷰하는 삽질을 했는데.. 만약 코딩테스트였다면 아찔합니다.. 인생의 나락으로... OTL 어쨌든! 다시 말하자면, 입출력 변수의 자료형이 주어지는 입력과 예상되는 출력의 범위를 포함할 수 있는지 보는 게 중요합니다! 이것 또한 헛된 시간 낭비를 방지하는 방법 중 하나이기 때문이죠. 

 

3. 시간복잡도를 생각하자

알고리즘 문제를 풀때, 풀이가 바로 떠올라도 한 번 의심할 필요가 있습니다. 물론 아주 쉬운 문제를 풀때는 그 풀이가 맞겠지만, 어느 정도의 난이도가 있는 문제를 풀때는 그 방법이 정답이 아닐 수가 있습니다. 그렇기 때문에 대략 실행시간 1초를 1~2억번의 명령 라인 실행으로 생각하고, 본인이 적용하려는 알고리즘의 시간복잡도와 일치하는지 보는 게 중요합니다. 그러면 잘못된 알고리즘을 적용하는 실수를 줄일 수 있으닌깐요!

 

 

알고리즘 문제를 풀면서 중요하다고 느꼈던 부분들을 수시로 업데이트 하겠습니다.

+ Recent posts