코딩테스트/기출
[연습문제 / 프로그래머스] 12930번 : 이상한 문자열 만들기
ydin
2022. 8. 29. 16:00
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12930
- 정답 풀이 :
temp = s.split() 에서 temp = s.split(' ')로 바꾸기만 했는데 정답이 떴다. 왜지?
def solution(s):
temp = s.split(' ')
result = []
for word in temp :
change = ''
for i in range(len(word)):
if i % 2 == 0 :
change += word[i].upper()
else:
change += word[i].lower()
result.append(change)
answer = ''
for i in range(len(result)):
answer += result[i]
answer += ' '
return answer[:len(answer) - 1]
- 정답 풀이 2 :
첫번째 풀이를 더 짧게 만들어봤다
def solution(s):
temp = s.split(' ')
result = []
answer = ''
for word in temp :
change = ''
for i in range(len(word)):
if i % 2 == 0 :
change += word[i].upper()
else:
change += word[i].lower()
answer += change
answer += ' '
return answer[:len(answer) - 1]
- 정답 풀이 3:
이게 더 짧다
def solution(s):
answer = ''
word = s.lower().split(" ")
for w in word:
for i, x in enumerate(w) :
if i % 2== 0 :
answer += x.upper()
else :
answer += x
answer += " "
return answer[:len(answer) - 1]
- 시도해본 풀이 :
아무래도 빈칸이 꼭 한 칸이 아니라서 생긴 문제인 것 같은데 해결이 안됐다
def solution(s):
temp = s.split()
result = []
for word in temp :
change = ''
for i in range(len(word)):
if i % 2 == 0 :
change += word[i].upper()
else:
change += word[i].lower()
result.append(change)
answer = ''
for i in range(len(result)):
answer += result[i]
answer += ' '
return answer[:len(answer) - 1]