[프로그래머스 Python] Lv 1. 이상한 문자 만들기
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
- 👉 문제 보러가기
문제 풀이
(1) Pseudo-Code
- s에 포함된 문자를 하나씩 순회한다.
- 공백인 경우 반환할 문자열에 그대로 추가한다(idx 값 초기화).
- 공백이 아닌 경우, idx값의 짝수 홀수 여부에 따라 upper, lower함수로 대소문자 처리한다.
(2) 코드 작성
def solution(s):
total_text = ''
idx = 0
for text in s:
if text == ' ':
total_text += text
idx = 0
continue
# 공백이 아닌 text일 경우
if idx % 2 == 0:
total_text += text.upper()
idx += 1
else:
total_text += text.lower()
idx += 1
return total_text
(3) 코드 리뷰
- 처음에 공백을 기준으로 분리(split 함수 사용)했을 때 테스트에서 실패 sign이 떠서 반례를 알아보니 공백은 그대로 두어야한다고 한다.
- 그래서 공백여부를 먼저 판단하고 공백이 아닌 경우 idx를 하나씩 늘려가는 식으로 코드를 작성했다.
- 공백일 경우 idx 값 0으로 초기화
- 반례: “ Try hello world “ -> 기댓값: “ TrY HeLlO WoRlD “
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기