문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
🔗제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. - 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
🔗입출력예
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
👉 문제풀이
공백을 기준으로 단어를 분리하고, 그 단어에 따라 짝, 홀수를 판별하여 대소문자를 변경해야하는 문제
공백 기준으로 분리하기 위해 split(' ')함수를 사용
a에는 list가 생성됨 -> ['try', 'hello', 'world']
처음 반복문에 i의에 try, hello, world 값을 넣고, 다음 반복문에는 단어 길이만큼 반복한다.
단어의 인덱스의 짝수, 홀수를 판별하는 if문을 통해 짝수면 대문자 upper()함수를, 홀수면 소문자 lower()함수를 이용하여 빈 문자열 answer 변수에 저장한다.
단어마다 공백이 필요하기 때문에, 인덱스 for문이 끝나면 answer에 공백을 추가해준다.
최종 return 값을 그냥 answer로 할 경우 마지막 뒤에 공백이 생겨 실제 출력값과 다르게 된다.
따라서, 마지막 공백은 제외하고 return해야하므로 answer[:-1]을 해준다.
def solution(s):
answer = ''
a = s.split(' ') # ['try', 'hello', 'world']
for i in a:
for j in range(len(i)):
if j % 2 == 0:
answer += i[j].upper()
else:
answer += i[j].lower()
answer += ' '
return answer[:-1]
👉다른사람 풀이(enumerate)
공백기준으로 단어를 분리하여 w에 값을 저장
enumerate()함수를 통해 인덱스 i와 각 단어를 저장
if문을 통해 인덱스i가 짝수일 경우 대문자, 홀수일 경우 소문자인 조건문 작성
최종 리스트를 공백을 기준으로 조합한다.
def toWeirdCase(s):
# 함수를 완성하세요
return ' '.join(''.join([c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(w)]) for w in s.split())
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(toWeirdCase("try hello world")));