본문으로 바로가기

문제 고무오리 디버깅

 

솔루션 및 데이터 Github


이 문제는 개발자들에게 유명한 고무 오리 디버깅(Rubber Duck Debugging) 기법에서 영감을 얻은 문제이다.

고무 오리 디버깅이란 고무 오리 인형에게 자신의 코드를 설명하면서 디버깅을 하는 기법이다.

공부할 때 도움이 많이 된다는 남에게 설명하면서 공부하는 방식을 코딩하는데에도 적용한 방식이다.

 

러버덕

내가 지금 블로그에 글을 작성하면서 다시 한번 문제를 되돌아 보는 것도 비슷한 공부라고 할 수 있다.

 

하지만 문제에 제시된 고무오리는 우리의 문제를 들어줄 뿐만 아니라 문제를 듣고 문제를 직접 풀어주기 까지 하는 마법의 고무오리가 주어진다.

이 고무오리를 이용해서 문제를 남기지 않고 전부 풀었는지 확인하는 것이 이번 문제이다.

 

이 문제에서 주목 할 점은 고무오리에게 치명적인 문제가 있어 풀 문제가 없는데 고무오리를 사용한다면 풀 문제를 2문제 추가한다는 점이다.

이 점만 잘 고려해 준다면 

if (n > 0) {	//남은 문제가 있을 때
	n -= 1;
}
else {		//남은 문제가 없을 때
	n += 2;
}

남은 문제를 입력 받을 때 마다 갯수를 더해주고 빼주면 구현 할 수 있다.

 

이 문제는 원래 기획당시 스택을 이용한 문제로 문제가 들어오면 스택에 문제를 넣어주고 고무오리가 들어오면 문제를 빼는 식으로 기획을 하였는데 먼저들어온 문제던 나중에 들어온 문제던 구분이 필요없는 문제기 때문에 자료구조 스택을 이용한 어느정도 난이도가 있도록 기획한 문제였는데 생각보다 너무 쉬운 문제가 되어버려서 A번에 배치되게 되었다.