카테고리 없음

글쓰기 44일차

yoon000219 2026. 7. 16. 20:57

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

 

def solution(s):

    answer = ""
    idx = 0

    for ch in s:

        if ch == " ":
            answer += " "
            idx = 0

        else:

            if idx % 2 == 0:
                answer += ch.upper()

            else:
                answer += ch.lower()

            idx += 1

    return answer

 

📌 문제 이해

문자열을 공백을 기준으로 단어별로 나눈 뒤, 각 단어에서 짝수 번째 문자는 대문자, 홀수 번째 문자는 소문자로 변환하는 문제이다.

⚠️ 중요한 점은 문자열 전체의 인덱스가 아니라, 단어마다 인덱스를 다시 0부터 시작해야 한다.

예를 들어

try hello world
 

변환 과정은

try    → TrY
hello  → HeLlO
world  → WoRlD
 

최종 결과

TrY HeLlO WoRlD
 

💡 풀이 과정

1️⃣ 결과를 저장할 변수 생성

먼저 변환된 문자열을 저장할 공간을 만든다.

 
answer = ""
 

현재 상태

answer = ""
 

2️⃣ 단어의 인덱스를 저장할 변수 생성

각 단어마다 몇 번째 문자인지 기억하기 위해 idx를 만든다.

 
idx = 0
 

예를 들어

t = 0번째
r = 1번째
y = 2번째
 

처럼 현재 단어의 위치를 저장하는 역할을 한다.


3️⃣ 문자열을 한 글자씩 순회

 
for ch in s:
 

문자열

"try hello"
 

는 반복문에서 다음과 같이 하나씩 가져온다.

t
↓

r
↓

y
↓

(공백)

↓

h
↓

e
↓

l
↓

l
↓

o
 

4️⃣ 공백인지 확인

 
if ch == " ":
 

공백이라면

 
answer += " "
 

공백도 그대로 결과에 추가한다.

그리고 다음 단어는 다시 첫 글자부터 시작해야 하므로

 
idx = 0
 

으로 초기화한다.

예시

TrY

↓

공백

↓

TrY
 

그리고

hello
 

h
 

는 다시

0번째 문자
 

가 된다.


5️⃣ 짝수 번째 문자 처리

짝수 인덱스라면

 
idx % 2 == 0
 

조건이 참이 된다.

이 경우

 
answer += ch.upper()
 

를 수행하여 대문자로 변환한다.

예시

idx = 0

t

↓

T
 

또는

idx = 2

y

↓

Y
 

6️⃣ 홀수 번째 문자 처리

홀수 인덱스라면

 
idx % 2 == 1
 

이므로

 
answer += ch.lower()
 

를 수행하여 소문자로 변환한다.

예시

idx = 1

R

↓

r
 

7️⃣ 현재 단어의 인덱스 증가

문자를 하나 처리했으면

 
idx += 1
 

을 수행하여 다음 문자의 위치를 증가시킨다.

예시

0

↓

1

↓

2

↓

3
 

🔄 전체 동작 예시

입력

try hello
 

반복 과정

현재 문자idx변환 결과
t 0 T
r 1 Tr
y 2 TrY
공백 - TrY
h 0 TrY H
e 1 TrY He
l 2 TrY HeL
l 3 TrY HeLl
o 4 TrY HeLlO

최종 결과

TrY HeLlO

✏️ 오늘 배운 점

이번 문제를 통해 문자열을 한 글자씩 순회하며 조건에 따라 문자를 변환하는 방법을 익힐 수 있었다. 특히 문자열 전체의 인덱스를 사용하는 것이 아니라 공백을 기준으로 단어마다 인덱스를 다시 0으로 초기화해야 한다는 점이 핵심이었다.

 

또한 upper(), lower()를 활용한 문자열 변환과 % 연산자를 이용해 짝수와 홀수를 구분하는 방법도 함께 복습할 수 있었으며, 반복문과 조건문을 조합해 문자열을 원하는 형태로 가공하는 과정을 이해할 수 있었다.