[level 1] 이상한 문자 만들기 - 12930
성능 요약
메모리: 10.1 MB, 시간: 0.04 ms
구분
코딩테스트 연습 > 연습문제
채점결과
정확성: 100.0
합계: 100.0 / 100.0
제출 일자
2023년 12월 6일 18:16:48
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s | return |
---|---|
"try hello world" | "TrY HeLlO WoRlD" |
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
풀이
def solution(s):
answer = ''
string = s.split(' ')
for char in string:
for idx, c in enumerate(char):
if idx % 2 == 0:
answer += c.upper()
else:
answer += c.lower()
answer += ' '
return answer[:-1]
느낀점
문제를 보면 알겠지만 전체 인덱스의 홀수/짝수가 아닌, 문자가 시작되는 부분부터 홀수/짝수로 대문자와 소문자를 번갈아 사용해야 한다.
따라서, split으로 공백을 제거하고 리스트에 모든 단어를 담고, 리스트에 담긴 단어들을 하나씩 꺼내고 idx를 사용해서 나머지가 0일 때만 uppercase로 변경해주면 되는걸 깨달았다!
'알고리즘' 카테고리의 다른 글
프로그래머스: 최대공약수와 최소공배수 (1) | 2023.12.18 |
---|---|
프로그래머스: 3진법 뒤집기 (1) | 2023.12.17 |
프로그래머스: 예산 (0) | 2023.12.16 |
프로그래머스: 약수의 개수와 덧셈 (0) | 2023.12.16 |
프로그래머스: 가장 큰 수 (0) | 2023.12.16 |