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

dobyming·2022년 12월 26일
0

문제 설명

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

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

sreturn
"try hello world""TrY HeLlO WoRlD"

입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.


내 코드

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

문제는 안어려웠는데.. 정확도에서 박살이 났었다..
이유는 문제를 잘 읽어야 함과 동시에 여러가지 경우를 check 했는지를 보고 싶었던 문제였다. (꼼꼼하게 case를 다 고려해봤는지의 중요성)

  1. 문장 내의 여러개의 공백이 있을 경우
  2. 홀수 번째 문자에 ‘대문자’ 가 있을 경우

와 같이 고려했어야 100% 정확도를 얻을 수 있었다.

그리고 split(” “)과 split() 의 차이점에 대해서도 알아봤다.
(s.split() 했을때 정확도에서 자꾸 6점 밖에 부여 안되서 s.split(” “)로 바꿨더니 100 나옴)

요약

split() 은 모든 공백을 한번에 처리하고 반면에 split(' ')은 이후 공백을 전부 따로따로 처리한다.

ex)

print("a bb  ccc   dddd    ".split())
print("a bb  ccc   dddd    ".split(' '))

결과값

['a', 'bb', 'ccc', 'dddd']
['a', 'bb', '', 'ccc', '', '', 'dddd', '', '', '', '']

파이썬3(python3)에서 문자열 자르는 함수. split()과 split(' ')의 차이.

0개의 댓글