우당탕탕 개발일지
프로그래머스 level 2 JadenCase 문자열 만들기 (Python 파이썬) 본문
💡문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
💡문제 분석 요약
주어진 문자열을 다음과 같은 규칙을 통해 바꾸시오.규칙 1. 모든 단어의 첫 글자는 대문자로규칙 2. 단어의 첫 글자가 숫자인 경우 대문자로 바꾸지 않는다.규칙 3. 단어는 띄어쓰기로 구분되어 있으며, 띄어쓰기가 연속으로 나올 수 있음
💡알고리즘 설계
1. 문자열의 처음부터 하나하나 탐색(반복문)
2. 한 글자가 공백문자이고 바로 뒤에 오는 글자가 공백문자가 아니라면 바로 뒤에 오는 글자를 대문자처리
3. 마지막에서 두번째 자리의 글자까지 위 과정을 반복
* 숫자를 대문자처리하면 아무것도 일어나지 않음. 따라서 if문을 이용해서 숫자인지 문자인지 구분할 필요가 없음
💡코드
def solution(s):
s = s[0].upper() + s[1:].lower()
l = s
for i in range(len(s)-2):
if s[i] == " " and s[i+1] != " ":
l = l[:i+1] + l[i+1].upper() + l[i+2:]
return l
s를 그대로 반복문 안에 써버리면 엉킬 수 있으니
s를 l이라는 리스트에 복제한 후에 l을 사용해서 대문자 처리를 해준다.
💡 오답 풀이
처음에 공백문자가 연속해서 나올 수 있다는 조건을 보지 못하고 공백을 기준으로 단어를 나눠 리스트로 만들고 이를 다시 붙이려고 했다.
s.split() " ".join(s)
이거 써서 하려고 했는데 계속 부분점수가 나왔고, 런타임 에러가 떴다.
다시 문제를 자세히 읽어보니 공백문자가 연속으로 나올 수 있다는 조건이 있었다.
문제를 잘 읽자!
'알고리즘' 카테고리의 다른 글
[동적계획법] 프로그래머스 level 2 조이스틱 (Python 파이썬) (0) | 2025.03.18 |
---|---|
프로그래머스 level 2 이진변환 반복하기 (Python 파이썬) (0) | 2025.03.12 |
[그리디] 프로그래머스 level 3 숫자게임 (Python 파이썬) (1) | 2024.10.18 |
[연습문제] 프로그래머스 level 3 최고의 집합 (Python 파이썬) (0) | 2024.10.17 |
[그리디] 프로그래머스 level 3 단속카메라 (Python 파이썬) ⭐ (0) | 2024.10.15 |