1.다룰 소재

Untitled

어그로를 끌기 위해 갓탱님의 슬랙 댓글 중 하나를 가져왔습니다.

완전한 코드란 무엇일까요?

완전한 코드를 짜기 위해 과제를 분석하고 알고리즘을 설계하는 시야에 대해 다뤄볼 예정입니다.

그리고 저번 포스팅에서 어떤 동작을 수행할때 이전까지의 모든 동작을 고려하는 코드를 적용할 수 있는 최신 기출문제 하나를 살펴볼 예정입니다.

2. 완전한 코드

음….. 우선 대단한 것을 이야기하려고 하는것은 아닙니다……

피신에서 작성한 코드 중 하나인 atoi 함수를 예로 봅시다.

해당 기능을 함수를 작성한다고 생각해 봅시다. 작성한 코드가 -2147483647 ~ 2147483647 까지는 정상동작을 합니다. 그런데 -2147483648 에서는 에러가 납니다. 오버플로우가 발생한 것으로 보입니다. 이 코드는 완전한 코드일까요? 네. 당연히 완전한 코드가 아닙니다.

제가 사용하고자 하는 완전한 코드의 의미는 정상적인 입력에서 오류가 나지 않고, 예상하는 바를 수행하는 코드를 의미합니다. 역시나 피신때의 코드를 활용해서 이야기를 이어나가 보겠습니다.

실 완벽과 완전이란 표현이 올바라 보이진 않습니다.

3. 기억하나요? 나예요 union

union은 두 개의 문자열 s1과 s2를 입력받아 s1부터 s2까지 앞에서부터 차례로 출력하되, 하나의 문자가 여러번 출력하는 경우가 없도록 요구합니다. 어떻게 구현할 수 있을까요?