프로그래밍/코딩 테스트, 더 이상 미룰 수 없다

[코딩 테스트, 더 이상 미룰 수 없다] 프로그래머스lv1.신규 아이디 추천 -Python 문자열 정복하기

d 0_0 b 2026. 6. 27. 14:23

python문자열 다루기를 정리 할 수 있는 문제이다. 시험 보기 전에 한 번 보고 가면 더 좋을 문제다. 

 


2. lower()

모든 문자를 소문자로 변환

s = "AbC"

s = s.lower()

print(s)
abc

반대로 대문자는

s.upper()

3. isalnum()

문자가

  • 영어
  • 숫자

인지 확인한다.

"a".isalnum()
True
"1".isalnum()
True
"!".isalnum()
False

이번 문제에서는

if ch.isalnum() or ch in "-_.":

처럼 허용 문자만 남길 때 사용했다.


4. isalpha()

영어인지 확인

"a".isalpha()
True
"3".isalpha()
False

5. isdigit()

숫자인지 확인

"3".isdigit()
True
"a".isdigit()
False

6. replace()

문자열 치환

s = "a..b"

s = s.replace("..",".")
a.b

이번 문제에서는

while ".." in s:
    s = s.replace("..",".")

처럼 연속된 마침표를 하나로 줄이는 데 사용했다.


7. strip()

양쪽 문자 제거

s = "...abc..."

s.strip(".")
abc

왼쪽만 제거

s.lstrip(".")

오른쪽만 제거

s.rstrip(".")

8. split()

문자열 나누기

date = "2022.05.19"

year, month, day = date.split(".")

이번 코테에서 정말 많이 사용했다.

  • 개인정보 수집 유효기간
  • 신고 결과 받기
  • 문자열 문제

거의 필수 함수라고 생각한다.


9. join()

리스트를 문자열로 합치기

arr = ["a","b","c"]

"".join(arr)
abc

구분자를 넣을 수도 있다.

"-".join(arr)
a-b-c

10. 문자열 슬라이싱

앞에서 자르기

s[:5]

뒤에서 자르기

s[:-1]

마지막 문자

s[-1]

이번 문제에서는

new_id = new_id[:15]

처럼 길이를 제한할 때 사용했다.


11. 문자열 길이

len(s)

길이 조건이 있는 문제에서는 거의 항상 사용된다.


12. 문자열 존재 여부

if ".." in s:

처럼 사용할 수 있다.

이번 문제에서는

while ".." in s:

와 함께 사용했다.


이번 문제에서 새롭게 익힌 Python 문자열 함수

함수용도

lower() 소문자 변환
upper() 대문자 변환
isalnum() 영문 또는 숫자인지 확인
isalpha() 영문인지 확인
isdigit() 숫자인지 확인
replace() 문자열 치환
strip() 양쪽 문자 제거
rstrip() 오른쪽 문자 제거
lstrip() 왼쪽 문자 제거
split() 문자열 분리
join() 문자열 합치기
len() 길이 확인
in 문자열 포함 여부

이번 문제를 통해 얻은 구현 패턴

이번 문제는 알고리즘보다 문자열 전처리(String Processing) 문제였다.

앞으로 문자열 문제가 나오면 가장 먼저

1. Python 문자열 함수로 해결 가능한가?

2. 명세가 단계별이라면 그대로 구현하면 되는가?

3. 반복해서 처리하는 문자열은 replace(), strip(), split()으로 해결할 수 있는가?

를 먼저 생각해보기로 했다.

문자열 문제는 복잡한 알고리즘보다 Python이 이미 제공하는 함수들을 얼마나 잘 활용하느냐가 구현 속도와 코드의 간결함을 결정한다.

 

파이썬은 참 사기다.