728x90
프로그래밍 대회나 백준에서 푸는 문제를 풀 때 원하는 결과와 다르게 나온 경우, 어떻게 할까?
대다수 디버거를 켠다.
하지만 프로그래밍 대회에서는 디버거 사용을 권장하지 않는다.
프로그래밍 대회에서 작성되는 코드는 대부분 길지 않기 때문에 눈 디버깅이 가능할 뿐더러, 재귀 호출이나 반복문이 많이 사용되어 코드가 디버깅에 적합하지 않은 구조다.
디버깅 대신 사용할 수 있는 것들을 소개한다.
1. 작은 입력에 대해 제대로 실행되나 확인하기
오동작하는 가장 작은 입력을 먼저 찾아내면 디버깅이 훨씬 용이해진다.
2. 단정문(assertion) 사용하기
단정문이란, 주어진 조건이 거짓일 때 오류를 내고 프로그램을 강제 종료싴키는 함수 또는 구문을 의미한다.
주어진 조건이 참일 때는 무시된다.
함수에서 넘겨받은 인자들이 범위 안에 들어 있는지 등을 단정문으로 검사해볼 수 있다.
3. 프로그램의 계산 중간 결과를 출력한다.
프로그램이 실행되는 중간 과정 값들을 출력하여 자신이 예상하는 바와 맞는지 확인한다.
위 과정을 걸치고도 오류 원인을 모르겠거나 프로그램이 런타임 오류를 낸다면, 디버거를 사용해도 좋다.
출처 : 구종만 선생님의 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략 1권
'Algorithm & Data Structure' 카테고리의 다른 글
알고리즘 문제 해결 방법 (0) | 2024.05.12 |
---|