[문제]
https://programmers.co.kr/learn/courses/30/lessons/12930
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
[풀이]
1. split 함수
문자열.split('구분자')
split 함수는 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다.
근데 문제를 풀다가 이해가 안가는 한가지..
해당 문제의 조건이 "각 단어는 하나 이상의 공백 문자로 구분되어있다" 라고 되어있는데 왜 split() 이 아닌 split(" ") 일까?..
- split()은 공백이 1개, 2개, n개 상관없이 무조건 1개로 보고 처리
- split(" ")은 공백 1개를 각각의 공백으로 따로 처리
이 차이가 있어 split()이라고 생각했어서 조금 헤맸다.. 이 이유는 앞으로 알아가야 될 것 같다.
2. lower, upper 함수
문자열을 소문자로 변경하고 싶을 때 lower 함수를 쓰고 대문자로 변경하고 싶을 때 upper 함수를 쓴다.
위 함수는 바꾸고 싶은 문자열을 변환한 새로운 문자열을 반환하기 때문에 또 다른 변수에 담아주어야 한다.
3. join 함수
join은 리스트에 특정 구분자를 추가하여 문자열로 변환하는 함수이다. 따라서 해당 함수를 사용해 리스트 사이에 특정 문자를 넣을 수 있다.
[코드]
def solution(s):
answer = []
for voca in s.split(" "):
word = ""
for i in range(len(voca)):
if i % 2:
word += voca[i].lower()
else:
word += voca[i].upper()
answer.append(word)
return ' '.join(answer)
'문제풀이 > Programmers' 카테고리의 다른 글
[프로그래머스][Lv1][Python] 로또의 최고 순위와 최저 순위 (0) | 2022.02.18 |
---|---|
[프로그래머스][Lv1][Python] 소수 만들기 (0) | 2022.02.18 |
[프로그래머스][Lv1][Python] 문자열 내 마음대로 정렬하기 (0) | 2022.02.17 |
[프로그래머스][Lv1][Python] 하샤드 수 (0) | 2022.02.17 |
[프로그래머스][Lv1][Python] 모의고사 (0) | 2022.02.11 |