[백준 1871] 좋은 자동차 번호판
split()과 ord()를 잘 사용하면 쉽게 해결되는 문제입니다.
split(‘기준문자열’)과 같이 함수의 인자로 어떤 문자열을 입력해주면
그것을 기준으로 문자열을 분리해낸다는 점을 주목합시다.
또한, ord()는 해당 문자의 ASCII code를 반환합니다.
따라서, 첫째 줄에 번호판의 수 N을 입력받습니다.
그 후, N번에 걸쳐 문자열을 입력받는데 ‘-‘를 기준으로 하여 split해줍니다.
(ex> ‘ABC-0123’을 split(‘-‘)하면 [‘ABC’, ‘0123’] 생성)
이때 첫 번째 요소에서 각 글자를 while문으로 반복하여 살펴보면서
26진법 수처럼 계산되기 때문에 (=> A가 0, B가 1, C가 2..)
해당 글자의 ASCII code에서 ‘A’의 ASCII code를 빼줍니다.
(ex> ‘B’의 ASCII code는 66이므로 ‘A’의 ASCII code인 65를 빼면 1이 됩니다.)
그 값에 26의 거듭제곱 값들을 곱해 모두 더하면 앞 부분의 가치가 완성됩니다.
나머지 뒷부분은 int()를 통해 정수화를 시켜주면 됩니다.
이 둘을 뺀 값의 절댓값이 100보다 작거나 같으면 되므로
abs() 함수를 사용해 절댓값을 구하여 100보다 작은지 아닌지에 따라 답을 구분해주면 됩니다.
문제 : 백준 1871 - 좋은 자동차 번호판