https://school.programmers.co.kr/learn/courses/30/lessons/12951
# 나의 코드(오답)
def solution(s):
s = s.lower()
lst = map((lambda x : str(x[0].upper()) + str(x[1:])), s.split(" "))
answer = " ".join(lst)
return answer
틀린 이유 : 제한 조건을 보면, 공백문자가 연속해서 나올 수 있다고 되어있는데, 해당 경우를 고려하지 못하였다.
즉, "3people unFollowed me" 라는 문장에 대해서는 잘 작동했지만, "3people unFollowed me" 이라는 문장에서는 잘 작동하지 않았다.
s.split(" ")이 해당 문장을 ['3people', '', '', '', 'unfollowed', 'me']로 나누는데, ''는 인덱스 1이 없기 때문에 오류가 나오는 것이다.
여러가지 풀이가 있지만, 특히나 인상적이였던 두가지 풀이를 적어보겠다.
# 풀이 1
def solution(s):
answer = ''
s = s.split(' ')
for i in range(len(s)):
word = s[i]
answer += f' {word.capitalize()}'
answer = answer.lstrip()
return answer
# 풀이 2
def Jaden_Case(s):
return s.title()
1번 풀이는 내 방식과 비슷하나, index를 이용한 lower, upper 사용이 아닌, capitalize()를 이용해 첫 글자만 대문자화 해줬다.
2번 풀이는 title()이라는 파이썬 내장 함수를 이용하였는데, capitalize, title 둘 다 처음 들어봤다.
문제를 많이 풀어서 이런 내장 함수를 많이 익히는 것이 중요할 것 같다.
'Coding > 알고리즘 오답' 카테고리의 다른 글
프로그래머스 level2 _ 올바른 괄호 [Python] (0) | 2022.12.31 |
---|---|
프로그래머스 level2 _ 최솟값 만들기 [Python] (0) | 2022.12.31 |
(그리디) 백준 20365번 _ 블로그2 [Python] (0) | 2022.10.05 |
(그리디) 이것이 코딩테스트다 11장 Q4 _ 만들 수 없는 금액 [Python] (0) | 2022.09.23 |
(우선순위큐) 백준 1655번 _ 가운데를 말해요 [Python] (0) | 2022.06.17 |
댓글