파이썬 코드카타

이상한 문자 만들기

여연찌 2024. 5. 29. 10:32
  • 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
  • 제한 사항
    문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
    첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
def solution(s):
    answer = ''
    s_list = s.split(' ')
    for i in s_list:
        for j in range(len(i)):
            if j % 2 ==0 :
                answer += i[j].upper()
            else:
                answer += i[j].lower()
        answer += ' '
    return answer[:-1]

 

s = " try hello world "

 

① s_list = s.split(' ')

s 를 공백마다 split 로 나누어 리스트로 만들어 준다

 

>

s_list = ["try","hello","world"]

 

 for i in s_list:
        for j in range(len(i)):

 

s_list 로 i를 반복해주는데,

i 의 길이 만큼 j 를 반복해준다.

 

 if j % 2 ==0 :
                answer += i[j].upper()
            else:
                answer += i[j].lower()

 

j 가 짝수이면 i 의 j 인덱스는 대문자, 그렇지 않으면 소문자

 

두번째 for 문 안의 조건이 실행되면

 

>

i 가 try 일때

인덱스가 0,1,2

인덱스 0 인 "t" 는 대문자

인덱스 1 인 "r" 은 소문자

인덱스 2 인 "y" 는 대문자

 

각각의 i 마다 위와 같은 코드가 실행되고

이 과정이 끝나면

answer = 'TrYHeLlOWoRlD'

 

이런 형태로 나오게 된다.

 

 answer += ' '  

 

이 후 첫번째 for 문이 실행되며

각각의 i  뒤에 띄어쓰기가 실행된다

 

>

answer = 'TrY HeLlO WoRlD '

 

 

     return answer[:-1]

 

answer 의 -1 번째 인덱싱까지 슬라이싱 해줌으로써

 

>

'TrY HeLlO WoRlD'

가 리턴된다.

 

 

 


 

참고:

https://school.programmers.co.kr/learn/courses/30/lessons/12930