❗오늘의 학습 키워드
문자열
❗ 공부한 내용
📌 코딩 테스트 문제 ?
📌 문제 풀이 프로세스
[1] 문제 이해
코테 스터디에서 해설 강의를 보고 나서
문제를 풀게 돼서
문제 이해가 이미 된 상태에서 접근했다.
[2] 직관적 문제 접근
해설강의에서는 capitalize() 함수를 써서
심플하게 구현했다.
def solution(s):
return " ".join([word.capitalize() for word in s.split(" ")])
해설 강의를 보고 난 후에
푸는 거라서..
capitalize() 로 접근하지 않고
풀 수 있는 방법에 대해 고민했다.
(1) " " 을 기준으로 split() 하기
(2) 맨 앞에 문자만 대문자로 바꾸기 (upper())
처음 코드를 작성했을 때는 쉽네 ?
라는 생각이 들었다....
그런데.. 테스트 케이스 일부가 미통과 되는 일이 일어났다..😒😒
내가 생각하지 못한 테스트 케이스는
" apple juice " 와 같이 앞 뒤로 공백이 있을 때이다.
그래서 split에서 정규표현식을 써줬다.. !
import re
def solution(s):
result = []
for word in re.split(r'(\s+)',s):
if word.strip() == '':
result.append(word)
else:
word = word[0].upper()+word[1:].lower()
result.append(word)
return ''.join(result)
결과는..
무사히 잘 통과됐다~
[3] 회고
음.. 문제를 풀다보면 가끔씩
예측하지 못하는 테스트 케이스가 있다.
string문제가 유독 많은 것 같다...
프로그래머스에서 지원하는
'다른 사람의 풀이'를 확인했는데
s.title() 이런 식으로
간단하게 해결한 풀이도 있었다..
하지만 아무래도 나처럼
문장 앞 뒤 공백 케이스를 생각하지 않은 것 같은.. ?
문제 풀 때는 그냥 막 풀더라도
복습할 때는 ..
테스트 케이스들을 고민하는 시간을
갖는 것도 매우 중요할 것 같다..!
'coding test' 카테고리의 다른 글
[코테준비] #3. 문자열 (0) | 2024.07.25 |
---|---|
[코테준비] #2. 행렬 (4) | 2024.07.24 |
[코테준비] #1. 행렬 / 배열 (3) | 2024.07.23 |