더북(TheBook)

문자열의 문제 유형

자주 등장하는 단골 유형부터 안 나올 것 같다 싶으면 나와서 사정없이 괴롭히는 유형까지 모두 살펴보겠습니다. 지금 이야기한 유형들 중 대부분은 이번 장에서 다룰 계획입니다. 이 외에도 다양한 유형이 등장할 수 있으니 항상 열린 마음으로 문자열을 대해주세요.

1. 문자열 뒤집기

문자열을 통째로 뒤집는 것은 매우 쉽습니다. 문자열에 슬라이싱으로 [::-1]을 사용해 역으로 만들면 됩니다. 가장 흔한 문제를 꼽자면 팰린드롬(palindrome)1 문제가 있으며, 뒤집은 문자열이 원래 문자열하고 일치하는지 확인하는 간단한 문제입니다.

하지만 문제 난이도가 Level 1 정도가 아니라면 통상적으로 다른 유형과 섞여서 ‘문자열을 뒤집은 후 ~를 해라’ 형태로 출제됩니다. 좀 더 어렵게는 일부분만 문자를 뒤집어야 하거나, 상황에 맞춰 뒤집어야 할 문자열이 다른 상황을 요구하기도 합니다. 이럴 경우 보통 for 문을 사용해서 문자열을 뒤집는 편이지만, 이 외에도 투 포인터(two pointers), 슬라이싱 같은 여러 방법을 기억해두는 것이 좋습니다.

2. 아스키 코드 다루기

C 언어를 배운 경험이 있다면 문자를 숫자(아스키 코드)로 변환하여 계산한 다음, 다시 문자로 치환하여 원하는 결괏값을 만들어 내는 문제를 한 번 정도는 풀어봤을 겁니다. 파이썬에서도 이러한 문제를 풀 수 있도록 문자를 숫자로 바꿔주는 ord() 함수와 숫자를 문자로 바꿔주는 chr() 함수를 제공합니다. 이러한 함수들을 사용하여 a에 1을 더하여 b로 만드는 등의 행동을 할 수 있으며, 기본적으로 알파벳 순회 같은 문제에서 자주 등장합니다.

print(ord('A')) #65
print(chr(65))  #A
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.