본문 바로가기

Applications

[codility] Lesson 2 Arrays CyclicRotation - 입력에 대한 체크를 하자!

2번째 문제였다.

배열을 K번 회전시키는 문제이다.

값을 일일이 복사하는 대신 시작을 가리키는 포인터를 바꾸는 것으로 하기로 하였다.

값을 복사하는 것보다는 하나만 바꾸는 게 아무래도 비용이 적게 들 것이므로...


그런데 테스트 결과가 이상하게 나온다.


분명 효율성보다는 정확성을 본다고 했는데 회색으로 87%인 것이다.

밑으로 스크롤해서 보니 작은 배열(아마도 크기가 0인?)인 경우 런타임 에러가 발생하고 있었던 것이다.


결국 방어코드를 넣고 나서야 100%가 될 수 있었다.


실무에서도 코드를 짜다보면 입력에 대한 방어코드를 짜는 것은 필수이다.

작은 코드라고 해서 생략했더니 결과가 안나오는 것이다.


기본은 빼먹지 말자!