JadenCase문자열 바꾸기
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
■ 문제
■ 풀이
처음에는 공백 기준으로 나누고 첫문자들만 대문자로 하면 되니까 뭐야! 이러고 그에 해당하는 코드를 작성했다
그게 밑에 코드 ▼
def solution(s):
word = s.split() # 공백을 기준으로 단어를 나눔
answer = "" # answer 초기화
for i in word:
# 각 단어의 첫 글자를 대문자로, 나머지 글자를 그대로 추가
answer += i[0].upper() + i[1:] + " "
return answer.strip() # 마지막 공백 제거 후 반환
근데 틀렸대 왜지??!?!?
코드를 실행시켰더니 뭔가 미묘,,,,,,뭐가 틀린걸까 ,,,,,눈 박박 비벼도 모르겠어서 걍 지피티를 돌렸는데 첫문자 아닌곳에 .lower()를 추가해보라고 했다.
그랬더니 테케는 통과했더니 실행시키니 걍 틀려버림 ...접근이 잘못된듯 싶어서 고민을 해봤다.
근데 생각해보니 나는 제한 조건에서 4번째에 해당하는 문장을 아예 무시하고 있었다. 공백에 대한 고려를 하지 않았고 공백이 연속으로 나올 수 있다는 조건을 무시했다.
그래서 이렇게 split()을 사용하지 않고 split(' ')을 사용해서 코드를 수정했고, len을 사용해 전체 문자 길이를 확인하며 공백을 유지할지 말지를 고려했다 !
def solution(s):
words = s.split(' ') # 공백을 유지하면서 문자열을 단어별로 분리
answer = []
for word in words:
if len(word) > 0:
answer.append(word[0].upper() + word[1:].lower())
else:
#공백 유지
answer.append(word)
return ' '.join(answer)
그랬더니 저엉답!
결론: 실수할거면 문제라도 잘읽자!
끝!!
'CS&알고리즘 > 프로그래머스' 카테고리의 다른 글
파이썬 코테 함수 정리1 (feat. 프로그래머스) (3) | 2025.02.03 |
---|---|
[프로그래머스 LV.2] 구명보트 python 풀이 (feat.그리디) (1) | 2024.11.20 |
[프로그래머스 LV.2] 점프와 순간이동 (feat.그리디) (0) | 2024.11.20 |
[프로그래머스 LV.2] 카펫(feat.완전탐색) (0) | 2024.11.19 |
[프로그래머스 LV.2] 다음 큰 수 (feat. 내장함수 bin()) (0) | 2024.11.19 |