개발/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;
}

 

flag1인데 assert에서 flag == 0false 이기 때문에 런타임 에러가 발생한다.

 

assert 내부에 있는 조건문이 true인 경우에는 정상적으로 코드가 실행된다.

int flag = 1;
assert(flag == 1);

 

실제 백준 문제에서 assert 내부의 조건문이 틀리는 경우 런타임 에러(AssertionFailed)가 발생한다.

 

반응형