라떼는말이야

[프로그래머스 lv2] JadenCase 문자열 만들기 본문

알고리즘/코딩 테스트

[프로그래머스 lv2] JadenCase 문자열 만들기

MangBaam 2021. 8. 5. 14:03
반응형


문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건

  • s는 길이 1 이상인 문자열입니다.
  • s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
  • 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )

입출력 예

입출력 예





나의 코드

def solution(s):
    s = s.split(' ')
    for i in range(len(s)):
        s[i] = s[i].capitalize()
    return ' '.join(s)

그렇게 어려운 문제는 아니다.

문자열 내장함수를 더 많이 알수록 쉬워지는 문제이다.

capitalize()는 단어의 첫 문자를 대문자로, 그 외에는 소문자로 바꾸고, 맨 앞에 문자가 오지 않으면 대문자로 바꾸지 않는 함수인데 문제와 완벽히 일치하기 때문에 이번 문제에서 아주 적절한 함수이다.

물론 capitalize를 사용하지 않아도 구현할 수 있겠지만 이미 존재하는 함수를 활용하는 것은 시간 단축에서나 효율성 면에서나 도움이 되기 때문에 새로운 함수를 배웠다면 잘 익혀서 다음 코딩테스트에 써먹는 것이 좋을 것 같다.

 


문제를 풀이하고 다른 사람의 풀이를 봤더니

def solution(s):
	return s.title()

이런 풀이가 있는 것이다...

정확히 말하면 예전에 동작하던 코드이다. title 함수는 맨 앞 문자를 대문자로 만든다. 하지만 문제 예시처럼 3people인 경우 3people로 반환해야 하지만 3People로 만들기 때문에 현재는 정답으로 인정되지 않는다.

 

그래도 다른 사람의 풀이를 보면 참신한 접근법이나 이번과 같이 새로운 함수를 알 수 있어서 좋다.

 

반응형
Comments