728x90
이상한 문자 만들기
문제
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력
- s: "try hello world"
- return : "TrY HeLIO WoRID"
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
나의 문제풀이 접근법
입력값을 리스트로 받되, ' '을 기준으로 단어만 추출하게끔 split() 함수를 사용한다.
리스트를 반복문을 통해 검사하면서 짝수번 인덱스에 있는 원소 값은 대문자로, 홀수번 인덱스에 있는 원소 값은 소문자로 변환한다. 이 때 이중 반복문을 돌려야 하는데, 하나는 단어들의 집합을 기준으로 1차를 돌리고 2차는 각 단어별 글자수를 기점으로 돌려야 한다. 이 때 1차 반복문의 사이클이 한번 돌을 때마다 공백을 추가한다. (단, 마지막 단어가 끝나고 나서는 공백 추가가 안되도록)
나의 코드
def solution(s):
array = list(s.split()) # {'try','hello','world'}
print("test value: ", array)
print("array value: ", len(array))
result_array = []
for k in range(len(array)):
i = array[k]
##print("i value: ", i)
for j in range(len(i)):
if j%2 == 0:
i[j].isupper()
result_array.append(i[j].upper())
else:
i[j].islower()
result_array.append(i[j].lower())
"""temp_list.append(''.join(result_array))"""
if k < len(array)-1:
result_array.append(' ')
##print("middle value : ", ''.join(result_array))
##print("final value : " , ''.join(temp_list))
answer = ''.join(result_array)
return answer
'IT > Algorithm' 카테고리의 다른 글
[백준] 영화감독 숌 (0) | 2024.06.26 |
---|---|
[프로그래머스] 소수찾기 (0) | 2024.06.22 |
[프로그래머스] 시저 암호 (2) | 2024.06.13 |
[구름] 절약 (0) | 2024.06.13 |
[프로그래머스] 구명 보트 (0) | 2024.06.11 |