dmswl
[프로그래머스 LV2] JadenCase 문자열 만들기 본문
⭐주의사항
제한 조건을 꼼꼼히 보자!!!!!!!!!!!!!
제한 조건에 대한 test case를 미리 추가해놓자!!!!!!!!!!!!!!!!!!!!
제한 조건
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
공백문자가 연속해서 나올 수 있습니다. <- 이 부분이 이 문제의 hidden point임
내 풀이는 공백문자가 연속해서 나오는 경우를 고려하지 않음.
내 풀이
def solution(s):
res = [str(string[0].upper() + string[1:].lower()) for string in s.split()]
return ' '.join(res)
test case
s | return |
"a a a a a a a a a a " | "A A A A A A A A A A " |
"a a " | "A A " |
풀이 방법
1. 공백을 그대로 가져가야되는데 split()해버리면 공백 3개여도 하나로 인식하고 무시해버림.
-> 정규식으로 숫자 또는 알파벳인 경우의 인덱스를 저장하고 그 인덱스 자리에 변환한 문자열을 넣어야 하나?
-> 아니면 매 문자열이 끝날때마다 공백 개수를 count해서 붙여야하나 - 이걸로 가자!
capitalize() 내장 함수 이용
: 첫글자만 대문자로 나머지는 소문자로 바꿔주는 함수
def solution(s):
answer = ''
s = s.split(' ') # 공백 기준으로 문자열 split
for i in range(len(s)): # 공백 기준으로 split한 문자열의 개수만큼 for문 돌기
s[i] = s[i].capitalize() # 각 문자열에 capitalize()함수 적용
answer = ' '.join(s) # 각 문자열을 공백을 기준으로 join
return answer
'코테 공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스 LV2] 올바른 괄호 (0) | 2023.04.13 |
---|---|
[프로그래머스 LV2] 최솟값 만들기 (0) | 2023.04.13 |
[파이썬 문법] sort, sorted 등 (0) | 2023.04.12 |
[백준] 23971. ZOAC 4 (0) | 2023.04.12 |
[프로그래머스 LV1] 문자열 내 p와 y의 개수 (0) | 2023.04.12 |
Comments