더북(TheBook)

12.3.1 이름의 중간 지점 찾기

이름의 중간을 찾으려면 문자열의 중간에 해당하는 인덱스를 계산해야 한다. 사용자가 입력한 이름의 길이는 0이 아닌 어떤 양수든 될 수 있고, 그 수는 홀수일 수도 짝수일 수도 있다.

 

12.3.1.1 이름 길이가 짝수인 경우

이름에 포함된 문자 개수가 짝수인 경우는 개수를 반으로 나누기 쉽다. 단어의 길이를 구해서 2로 나눠 나오는 정수 값이 문자열의 절반에 해당하는 인덱스다. 그림 12-3에서 Aqua가 이런 경우다.

 

12.3.1.2 이름 길이가 홀수인 경우

이름에 포함된 문자 개수가 홀수인 경우는 어떻게 해야 할까? 그림 12-3에서 Cat이나 Woman 등이 이런 경우다. 파이썬에서 홀수를 2로 나누면 3.5나 5.5 같은 실수(부동소수점 수)가 나온다. 하지만 실수를 문자열 인덱스로 사용할 수는 없다.

실수를 정수로 타입 변환할 수 있다는 사실을 떠올려보자. 예를 들어 int(3.5)는 3과 같다. 이런 식으로 계산하면 길이가 홀수인 이름의 중간 인덱스는 소수점 이하를 버리기 때문에 앞쪽 절반은 뒤쪽 절반보다 글자 수가 한 글자 적어진다. 그림 12-3의 Man에서 앞쪽 M이 이런 경우다. 마찬가지 이유로 인해 뒤쪽 절반은 앞쪽 절반보다 글자 수가 한 글자 많다. 그림 12-3의 Woman의 뒤쪽인 man이 이와 같은 경우다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.