본문 바로가기
coding test

[코테준비] #4. 문자열

by 소소한해결사 2024. 7. 26.


오늘의 학습 키워드 

문자열

 

 

 공부한 내용 

 

📌 코딩 테스트 문제 ? 

코딩테스트 연습 - JadenCase 문자열 만들기

 

📌 문제 풀이 프로세스 

 

[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