프로그래머스 LV1 - 이상한 문자 만들기
내 풀이
def solution(s):
a = list(s)
x = 0
for i, word in enumerate(a):
if word == ' ':
x = 0
continue
if x % 2 == 0:
a[i] = word.upper()
x += 1
else:
a[i] = word.lower()
x += 1
return ''.join(a)
다른 풀이
def solution(s):
words = s.split(" ") # s문자열을 " "을 기준으로 단어로 분리
result = [] #변환된 결과를 저장할 리스트 초기화
# 각 단어에 대해 반복
for word in words:
new_word = '' # 변환된 단어를 저장할 변수 초기화
# 단어 내 문자에 대해 인덱스와 함께 반복
for idx, alp in enumerate(word):
# 짝수 인덱스일 때 대문자로 변환하여 추가
if idx % 2 == 0:
new_word += alp.upper()
# 홀수 인덱스일 때 소문자로 변환하여 추가
else:
new_word += alp.lower()
# 변환된 단어를 결과 리스트에 추가
result.append(new_word)
# result 원소들 사이사이에 공백을 추가해서 문자열로 반환
return " ".join(result)
풀이 해석
s를 공백기준으로 나눈뒤 단어를 읽고 그 안에서 idx를 부여하여 단어마다 초기화되게 하였다. 그 이후 list를 str로 변환하는 과정에서 “ “.join을 하여 단어 사이에 공백을 만들었다.
배울 점
- ” “.join으로 단어 사이 공백 만들기
댓글남기기