코딩테스트 준비를 하기 위해 인턴이 끝나고 오랜만에 머리 쓰는 알고리즘을 푸는데, 진짜 ㄹㅇ 하나도 감이 안 잡혔다. 그래서 프로그래머스 레벨 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
'Algorithm 뽀개기' 카테고리의 다른 글
나를 울게 만든 BFS... 그리고 백준 토마토 접근도 못 하겠는 사람 모여 (1) | 2025.03.26 |
---|---|
[백준] 2529 부등호 - 백트래킹 (Python) (0) | 2024.10.13 |
[백준] 14501 퇴사 - 재귀 (Python) (3) | 2024.09.18 |
[백준] 10819 차이를 최대로 - 백트래킹 (Python) (1) | 2024.09.18 |
[백준] 2309 일곱 난쟁이 - 브루트포스 (Python) (0) | 2024.08.10 |