본문 바로가기

알고리즘/했던 실수들

내가 알고리즘 풀면서 자주 하는 실수들

1. 문제를 정독하지 않는 것.

알고리즘 문제들은 보통 무조건 답이 나오는 조건을 주는 경우가 많지만 그렇지 않은 경우도 있다.

몇몇 문제들은 답이 나오지 않으면 -1을 출력하라는 식으로 내기도 한다.

따라서, 문제를 항상 정독해야 한다.

 

2. 로직을 점검하지 않는 것.

문제를 보고 바로 로직이 떠올라서 바로 코드를 작성하는 경우다.

나중에 로직 자체가 틀렸는데 이를 깨닫지 못하고 코드 실수나 예외 처리가 있다고 생각하여 코드를 계속 부분 수정하게 된다.

이는 시간만 계속 잡아먹고 코드 또한 더럽게 만든다.

이 실수의 최악인 점은 결국, 수시간동안 낑낑거린 코드를 전체 삭제해야 한다는 점이다.

애초에 로직 자체가 잘못됐기 때문에 모든 코드를 삭제하고 다시 로직을 생각하는 게 낫다.

 

3. 자료형의 범위 생각

백준 문제들 대부분은 자바의 int형으로 충분히 커버가 가능하지만 몇몇 문제들은 더 큰 자료형을 요구하기도 한다.

따라서 제한 사항을 주의 깊게 봐야 한다.

 

4. 예외 케이스 정해놓기

로직 점검을 위해 예외를 생각해두는 게 좋다.

예를 들면, 입력을 최소한으로 두거나, 최대한으로 뒀을 때를 생각해야 한다.

그 밖에도 생각해두는 것이 좋지만, 일단 이 두개는 무조건 생각해야 한다.

 

5. 시간복잡도 생각

이건 대부분 지키기는 하지만, 몇몇 생소한 알고리즘들은 시간복잡도를 대충 생각하고 넘기는 경우가 있다.

매번 시간 복잡도를 깔끔히 생각하고 풀자.

 

 

 

 

 

728x90
반응형