개발/Etc.
C++ - 백준 문제에서 assert를 이용하여 디버깅하기
피로물든딸기
2022. 12. 28. 01:09
반응형
백준 문제를 풀다 보면 문제를 통과하지 못하는 답답한 경우가 많다.
이때 assert를 이용하면 약간의 디버깅이 가능하다.
데이터의 정상성을 체크하거나, 입력을 제대로 받고 있는지
또는 조건문에 의외의 케이스가 있는지 확인할 때 유용하게 사용할 수 있다.
assert를 사용하기 위해서는 <cassert>를 선언해야 한다.
아래의 코드를 visual studio에서 실행해보자.
#include <stdio.h>
#include <cassert>
int main()
{
int flag = 1;
printf("hello!\n");
assert(flag == 0);
printf("world!\n");
return 0;
}
flag는 1인데 assert에서 flag == 0 → false 이기 때문에 런타임 에러가 발생한다.
assert 내부에 있는 조건문이 true인 경우에는 정상적으로 코드가 실행된다.
int flag = 1;
assert(flag == 1);
실제 백준 문제에서 assert 내부의 조건문이 틀리는 경우 런타임 에러(AssertionFailed)가 발생한다.
반응형