본문 바로가기

알고리즘 공부/프로그래머스 > Python3

[프로그래머스] 이상한 문자 만들기

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

 

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

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

programmers.co.kr

 

[정답]

def solution(s):
    answer = ''
    new_s = s.split(' ')
    for i in new_s:
        for j in range(len(i)):
            if j%2==0:
                answer+=i[j].upper()
            else:
                answer+=i[j].lower()
        answer+=' '
    answer=answer[:-1]
    return answer


처음에는 쉬운 문제라고 생각했지만, 주의해야 할 것이 조금 있는 문제이다.

1.

제한 사항) 문자열 전체의 짝/홀수 인덱스가 아니라, 단어별로 짝/홀수 인덱스를 판단해야 함.

문제를 잘 읽고 풀도록 하자...

2.

단어 한 개가 대/소문자 변경이 완료되었을 때 공백을 더해주었다.

이럴 경우, 맨 마지막에 공백이 하나 더해진다는 문제가 생긴다.

ex) 정답은 "TrY HeLlO WoRlD" ↔ 출력은 "Try HeLlO WoRlD "

이런 문제점을 해결하기 위해, answer을 출력하기 전에 answer=answer[:-1]을 해주었다.

answer[:-1]는 answer의 처음부터 (-1-1)자리까지를 의미한다. 즉 마지막 자리는 제외된다.