https://programmers.co.kr/learn/courses/30/lessons/12930
def solution(s):
answer = ''
s_split = s.split(" ")
for str_part in s_split:
for i, c in enumerate(str_part):
if i % 2 == 0:
answer += c.upper()
else:
answer += c.lower()
else:
answer += ' '
return answer[:-1]
print(solution("try hello python"))
answer = ''
s_split = s.split(" ")
for str_part in s_split:
for i, c in enumerate(str_part):
for loop를 두 번 쓰고 해결을 했지만, 다른 방법도 많이 있어보였다. 다른 분들이 푸신 풀이는 뒤쪽에서 살펴보기로 한다.
문자열의 인덱스를 찾기 위해 enumerate 함수를 사용하였다. 위와 같은 코드가 실행이 된다면,
0 t
1 r
2 y
0 h
1 e
2 l
3 l
4 o
0 p
1 y
2 t
3 h
4 o
5 n
이런 식의 결과를 얻을 수 있다. 띄어쓰기는 판별되지 않고, 문제에서 요구하는 값을 이렇게 한 번에 뽑을 수가 있었다.
if i % 2 == 0:
answer += c.upper()
else:
answer += c.lower()
인덱스를 기준으로 짝수면 upper, 홀수면 lower 함수를 사용하여 answer에 차곡차곡 쌓는다.
else:
answer += ' '
return answer[:-1]
만약 짝수도, 홀수도 아니라면 공백을 추가해준다.
여기까지하고 vs code에서 돌려봤을 땐 문제가 없었지만 테스트케이스를 통과하지 못했다. 문제는 가장 뒤에 공백이 하나 더 추가되는 것을 확인할 수 있었다. 그래서 가장 뒤쪽 공백은 제거하면서 리턴한다.
https://somjang.tistory.com/entry/Programmers-이상한-문자-만들기-Python
def solution(s):
s_split = s.split(" ")
for k in range(len(s_split)):
s_list = list(s_split[k])
for i in range(len(s_list)):
if i % 2 == 0:
s_list[i] = s_list[i].upper()
elif i % 2 == 1:
s_list[i] = s_list[i].lower()
s_split[k] = "".join(s_list)
answer = " ".join(s_split)
return answer
print(solution("try hello python"))
거의 비슷한 방식으로 푸셨지만, 인덱스를 사용하기 위해 range(len(s_split))를 사용한 부분은 나와 달랐다. 두 번째 for loop의 결과는 0, 1, 2... 이렇게 나올 것이기 때문에 저렇게 비교를 해도 더 깔끔해 보일 수도 있겠다는 생각을 하였다.
str_list = "try hello python"
s_split = str_list.split(" ")
# print(s_split)
for k in range(len(s_split)):
s_list = list(s_split[k])
print(s_list)
# 출력
# ['t', 'r', 'y']
# ['h', 'e', 'l', 'l', 'o']
# ['p', 'y', 't', 'h', 'o', 'n']
또한 몰랐었던 join에 대해 알게 되었다.
myList = ["John", "Peter", "Vicky"]
x = " ".join(myList)
print(x)
# 출력
# John Peter Vicky
https://ychae-leah.tistory.com/7
def solution(s):
charlist = ""
idx = 0
for i in s:
if i.isalpha():
idx += 1
if idx % 2 != 0:
charlist += i.upper()
else:
charlist += i.lower()
else:
idx = 0
charlist += " "
continue
return charlist
print(solution("try hello python"))