728x90
📌 이상한 문자 만들기
각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수를 완성하세요.
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
💡 나의 풀이
s.split(' ')
의 중요성을 깨닫게 해준 문제였다. 각 단어는 하나 이상의 공백문자라고 했는데, 문제를 간과하고 s.split()
만 사용해서 정답률이 31%
로 나왔었다.
for ~ in range(len))
, for ~ in enumerate
중 내가 쓰기 편한 코드인 enumerate
를 사용했다.
다른사람은 내가 작성한 코드를 한 줄로 표현했다.
이 코드를 한 줄로 표현하니까 코드가 길어져서 나는 눈에 잘 들어오지 않았는데 가독성이 괜찮은가?
# 내 코드
def solution1(s):
s = s.split(' ')
result = ''
for word in s:
for idx, value in enumerate(word):
if idx % 2 == 0:
result += value.upper()
else:
result += value.lower()
result += ' '
return result[:-1]
# 다른사람의 코드
def solution(s):
return ' '.join([''.join([value.upper() if idx % 2 == 0 else value.lower() for idx, value in enumerate(word)]) for word in s.split()])
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - x만큼 간격이 있는 n개의 숫자 (0) | 2021.04.05 |
---|---|
[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - 최대공약수와 최소공배수 (0) | 2021.04.05 |
[ 파이썬(python) ] 프로그래머스 level1 - 휴대폰 번호 가리기 (0) | 2021.04.02 |
[ 파이썬(python) ] 프로그래머스 level1 - 짝수와 홀수 (0) | 2021.04.01 |
[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - 정수 제곱근 판별 (0) | 2021.04.01 |
댓글