안녕하세요.
강렬한 스포트라이트 입니다!
하기의 문제를 Python 언어를 사용하여 구현하고자 합니다.
<문제 설명>
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
<제한 사항>
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
<입출력 예>
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
1) .split() 함수로 공백 기준 문자열을 구분하고, enumerate() 함수로 index와 값을 사용하여 대소문자를 변환합니다.
이후 처음 문자열 s에서 공백의 위치를 확인하여 result에 삽입하여 구현한 코드입니다.
def solution(s):
result=[]
for i in s.split(" "):
for idx1, j in enumerate(i):
if idx1%2==0:
result.append(j.upper())
else:
result.append(j.lower())
for idx2,k in enumerate(s):
if k==" ":
result.insert(idx2," ")
return ''.join(r for r in result)
2) 구분된 문자열을 기준으로 대소문자를 변환하고 맨 끝에는 공백을 추가해줍니다.
이후 리턴할 때 [:-1] 슬라이싱을 사용하여 문자열의 마지막 공백은 출력되지 않도록 구현한 코드입니다.
def solution(s):
result=''
for i in s.split(" "):
answer=''
for j in range(len(i)):
if j%2==0:
answer+=i[j].upper()
else:
answer+=i[j].lower()
result+=answer+" "
return result[:-1] #맨 오른쪽 값을 제외하고 출력함
3) 문자열을 분리하지 않고 공백(" ")에 해당할 경우 인덱스를 초기화하여 구현한 코드입니다.
def solution(s):
idx=-1;result=""
for i in s:
if i==" ":
idx=-1
result+=" "
else:
idx+=1
if idx%2==0:
result+=i.upper()
else:
result+=i.lower()
return result
해보시고 문의사항이 있으시면 댓글로 남겨주세요.´◡`
감사합니다!
반응형
SMALL
'PS > programmers' 카테고리의 다른 글
[Lv. 1] 콜라츠 추측(Python) (0) | 2023.03.28 |
---|---|
[Lv. 1] 행렬의 덧셈(Python) (0) | 2023.03.27 |
[Lv. 1] 같은 숫자는 싫어(Python) (0) | 2023.03.23 |
[Lv. 1] 최대공약수와 최소공배수(Python) (0) | 2023.03.21 |
[Lv. 1] 문자열 내림차순으로 배치하기(Python) (0) | 2023.03.20 |