https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
기본적인 인덱스 관리와 문자열 다루기를 안다면 풀 수 있는 문제입니다.
아이디어는 간단합니다. 단어별 인덱스와 문장의 전체 인덱스를 따로 관리해줍니다.
공백을 만난다면 단어가 끝났음을 의미하기 때문에 단어별 인덱스를 0으로 초기화 시켜줍니다.
공백이 아니라면? 홀짝에 따라 upper(), lower()를 사용해서 대소문자를 바꾸면서 단어별 인덱스를 1씩 늘려주면 됩니다.
문장의 인덱스는 모든 과정마다 늘려줍니다.
문제에서 짝수번째, 홀수번째의 설명이 좀 애매한데, 우리가 알고 있는 배열의 index처럼 0번째 부터 시작한다고 이해하면 예시케이스와 같이 진행됩니다.
def solution(s):
msg = list(s)
idx = 0
for i in range(len(msg)):
if msg[i] == " ":
idx = 0
elif idx % 2 == 0:
msg[i] = msg[i].upper()
idx += 1
else:
msg[i] = msg[i].lower()
idx += 1
return ''.join(msg)
728x90
'🔍 알고리즘 > 프로그래머스 Python' 카테고리의 다른 글
[Python] 프로그래머스 12915. 문자열 내 마음대로 정렬하기 (Lv.1) (1) | 2022.10.10 |
---|---|
[Python] 프로그래머스 12926. 시저 암호 (Lv.1) (0) | 2022.10.10 |
[Python] 프로그래머스 12940. 최대공약수와 최소공배수 (Lv.1) (0) | 2022.10.10 |
[Python] 프로그래머스 12969. 직사각형 별찍기 (Lv.1) (0) | 2022.10.07 |
[Python] 프로그래머스 82612. 부족한 금액 계산하기 (Lv.1) (0) | 2022.10.07 |