✔ 코드의 논리 오류를 어떻게 잡을까?
가장 뛰어난 오류 탐색 방법은 디버깅
✔ 디버깅은 왜 중요할까?
디버깅이란?
- 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정
- 디버깅은 코딩 테스트에 필요한 기술이고, 문제를 풀면서 반드시 해야 하는 과정
- 지엽적이며 오랜 시간이 걸리는 로그 대신 디버깅을 사용하자
✔ 디버깅 활용 사례 살펴보기
오류 1. 변수 초기화 오류 찾아보기
- 변수 초기화를 어디에서 하는지 초기화 로직의 문제를 살펴보기
- 모든 변수가 정상적으로 초기화되고 있는지 디버깅을 이용해 확인
- 예) t가 2일 때, answer의 값이 0으로 초기화되지 않고 1번쩨 테스트 케이스에서 도출한 answer의 값이 남아있게 됨
→ 초기화 로직에 문제가 있다는 것을 의미
오류 2. 반복문에서 인덱스 범위 지정 오류 찾아보기
- 배열의 크기가 100001일 때, 그에 따른 반복 범위가 제대로 100000으로 지정되었는지 살펴보기
- 반복문을 사용할 때마다 범위와 시작 인덱스를 디버깅을 이용해 확인
- 예) 배열 A와 S의 크기가 100001이므로 반복 범위는 100000이어야 하지만 10000이므로 S[10000]부터의 값이 모두 0이 됨
→ 인덱스 범위 지정에 문제가 있다는 것을 의미
오류 3. 잘못된 변수 사용 오류 찾아보기
- 출력 부분이나 로직 안에서 사용해야 하는 변수를 다른 변수와 혼동하지 않았는지 디버깅을 이용해 확인
- 예) t라는 반복 변수를 사용해야 하는데 기준 변수를 사용하거나 변수 이름 자체가 비슷해서 t와 testcase를 혼동하여 잘못 사용
→ 출력 변수 사용에 문제가 있다는 것을 의미
오류 4. 자료형 범위 오류 찾아보기
- 값을 변수에 저장할 때 변수에 지정한 자료형 범위를 넘어가는지 디버깅을 이용해 확인
- 팩토리얼, 경우의 수, 순열, DP와 같이 계산 시 수가 굉장히 커질 수 있는 경우에 꼭 주의
- 오류를 예방하는 가장 쉬운 방법으로 int형 대신, 변수를 처음부터 long형으로 선언하는 습관 들이기
- 예) S에 음수를 허용하지 않았으나 계산 과정에서 int형이 저장될 수 없는 범위의 값이 나와 음수로 된 이상한 값들이 저장됨
→ 값을 변수에 저장할 때 변수에 지정한 자료형 범위에 문제가 있다는 것을 의미
더보기
Do it! 알고리즘 코딩테스트 with JAVA
'Coding Test > Java 알고리즘 개념' 카테고리의 다른 글
[자료구조] 슬라이딩 윈도우 (0) | 2023.06.28 |
---|---|
[자료구조] 투 포인터 (0) | 2023.06.28 |
[자료구조] 구간 합 (0) | 2023.06.27 |
[자료구조] 배열과 리스트 (0) | 2023.06.27 |
[코딩 테스트 준비하기] 시간 복잡도 (0) | 2023.06.26 |