Algorithm 뽀개기
[Programmers] Lv.2 JadenCase 문자열 만들기 (Python)
daun_up
2025. 3. 19. 12:31
코딩테스트 준비를 하기 위해 인턴이 끝나고 오랜만에 머리 쓰는 알고리즘을 푸는데, 진짜 ㄹㅇ 하나도 감이 안 잡혔다. 그래서 프로그래머스 레벨 0 부터 뽀개기를 하다가 너무 많아서 반쯤 하고 포기하고, 레벨 1, 2 를 섞어 풀고 있다. 거침 없이 문제를 풀던 중 나를 가로막은 한 문제가 나를 오랜만에 블로그로 이끌었다!!
1. 먼저 공백을 기준으로 s 를 나눈다. (=words) ex. ['3people', 'unFollowed', 'me']
2. words 의 길이 만큼 for 문을 돈다. (3 번 돌겠지 그럼)
3. 만약 words[i] 가 있다면, words 의 첫 문자는 대문자로 바꾸고 나머지는 소문자로 바꾼다. 이때 words[i][0] 과 같은 식으로 배열을 사용하였다. 이거 뭐라 그러는지 아는 사람?
4. s 를 나눈 words 들을 합친다. ' '.join 을 사용
처음 문제를 풀 때 놓친 점은 문자열 중간에 있는 대문자를 소문자로 바꾸는 것이었다. 리스트로 바꿔서 공백을 기준으로 나누는 것을 생각하지 못했다. 그냥 for 문을 돌다가 공백이 있으면 그 다음 인덱스의 문자만 대문자로 바뀌게 해서 문자열 중간에 있는 대문자를 소문자로 변환하는 것에 애먹었다.
def solution(s):
words = s.split(' ')
print(words)
answer = ''
for i in range(len(words)) :
if words[i] :
words[i] = words[i][0].upper() + words[i][1:].lower()
answer = ' '.join(words)
return answer