코딩테스트 연습/프로그래머스

[Python] 프로그래머스 코딩테스트 연습 LV1 - 이상한 문자 만들기

환타몬 2022. 1. 22. 17:34

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

 

코딩테스트 연습 - 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

 

1.소스코드

import re
def solution(s):
    answer = ''
    s = s.split(" ") #문자열을 공백을 기준으로 나누기

    for i in s:
        i = list(i)
        for j in range(0,len(i)): 
            if j%2==0: #i의 인덱스 j가 짝수이면 대문자, 홀수이면 소문자
                i[j] = i[j].upper()
            else :
                i[j] = i[j].lower()
        i = "".join(i) #리스트의 문자열화
        answer +=" "+i #answer 에 문자열 넣기
    answer = re.sub('^[\s]',"",answer) #윗처럼 문자열을 넣으면 맨 앞에 공백이 생기기 때문에 정규표현식을 통해 맨 앞의 공백 제거
    return answer

 

2. 생각하기

한 단어마다 홀수,짝수의 인덱스로 나뉘기 때문에 split()메소드를 이용하여 공백을 기준으로

나누고, list로 반환함. for문으로 반환한 값을 돌고, 해당 값을 또 list로 만들어서 각 인덱스를 홀짝으로

분류하여 upper, lower 메소드를 이용하고, 그 값을 문자열로 전환한 뒤 문자열에 +해주기.