문제
- 이상한 문자 만들기
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
입력 & 출력
입출력 예
sreturn
"try hello world" | "TrY HeLlO WoRlD" |
풀이 과정
1. 문자열을 띄어쓰기를 기준으로 나눠서 작업해야한다는 내용과 중간에 띄어쓰기의 개수가 바뀔 수도 있다는 내용에서 split()을 사용해야 된다고 생각을 하였다 여기서. split() 기본으로 사용해도 띄어쓰기 기준으로 나눌 수 있지만 띄어쓰기가 여러 번 들어올 수도 있다는 제약 조건이 있기 때문에. split(" ")으로 확실하게 구분하도록 한다.
2. 이렇게 가공된 s_word_list를 for문을 이용하여 순회하면서 보고 각각 홀수와 짝수일때의 경우에 대소문자 변환을 수행한다.
3. 이렇게 만들어진 result를 answer 문자열에 추가하여 반환을 해주면 되겠다.
** 코드 2번 방법은 제출 시 문제가 있으니 코드1번을 참고 부탁드립니다.
코드
코드 1
def solution(s):
answer = []
temp =''
s = s.split(" ")
for i in range(len(s)):
for j in range(len(s[i])):
if (j % 2 ):
temp += s[i][j].lower()
else:
temp += s[i][j].upper()
answer.append(temp)
temp = ''
return (" ").join(answer)
코드 2
def solution(s):
s_word_list = s.split(" ")
answer = ''
for s_word in s_word_list:
s_word_unit = list(s_word)
for i in range(len(s_word_unit)):
if i % 2 == 0:
s_word_unit[i] = s_word_unit[i].upper()
elif i % 2 == 1:
s_word_unit[i] = s_word_unit[i].lower()
result = "".join(s_word_unit)
if len(answer):
answer += f" {result}"
else:
answer += result
return answer
'Algorithm' 카테고리의 다른 글
[프로그래머스] 시저 암호 (0) | 2022.08.18 |
---|---|
[프로그래머스] 약수의 합 (0) | 2022.08.18 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2022.08.17 |
[프로그래머스] 소수 찾기 (0) | 2022.08.17 |
[프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2022.08.17 |