본문 바로가기
개발/Etc.

C++ - 백준 문제에서 assert를 이용하여 디버깅하기

by 피로물든딸기 2022. 12. 28.
반응형

백준 문제를 풀다 보면 문제를 통과하지 못하는 답답한 경우가 많다.

 

이때 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)가 발생한다.

 

반응형

댓글