본문 바로가기
Python

본 캠프 Python 알고리즘 코드카타 6일차

by Data 학습자 2024. 6. 29.

오늘 풀어본 예제

 

https://school.programmers.co.kr/learn/courses/30/lessons/12930

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

 

입출력 예시

s return
"try hello world" "TrY HeLlO WoRlD

 

문제 파악

 

공백을 기준으로 단어를 나누어 홀수, 짝수를 계산한다.

단어를 홀수는 대문자 짝수번째는 소문자가 출력되게 한다.

나누어진 단어를 다시 합쳐 return 하는 것

 

파악한 문제를 토대로 코드를 짜보기

def solution(s):
    words = s.split(" ") 
    answer = []

 words = s.split(" ") 공백을 기준으로 단어를 나누어 words에 저장하기

 

answer = []  결과값을 넣어둘 리스트

    for word in words:
        t_word = ""
        for i, char in enumerate(word):
            if i % 2 == 0:
            t_word += char.upper()
            else:
                t_word += char.lower() 
        answer.append(t_word)

words 에 나눠놓은 값을 순차적으로 word에 넣기

 

t_word = " " 변환된 단어를 저장할 저장소

 

for i, char in enumerate(word): word의 인덱스 (데이터 구조 내의 특정 위치를 가리키는 숫자) 를 구해 i에 집어넣고 i에 해당하는 열의 값을 char에 집어넣음 < 이 역할을 하는 명령어는 enumerate


if i % 2 == 0: t_word += char.upper()  # 짝수 인덱스의 문자를 대문자로 출력


else: t_word += char.lower() 홀수 인덱스의 문자를 소문자로 출력

return " ".join(answer)

return " ".join(answer) 문자열 " "에 answer의 리스트 값을 join시켜서 하나의 문자열로 만들어 출력하기

 

행렬의 덧셈에서 튜터님께 질문을 하고 답변으로 받았던 enumerate에 대해 미리 예습을 했던 것이 큰 도움이 되었다.

그게 아니었으면 오늘 문제 풀이에서 큰 좌절을 맛보았을 것이다.

 

오늘의 배운 점은 enumerate을 복습하고 join을 통해 리스트의 문자들을 하나의 문자열로 변환할 수 있다는 join 명령어에 대한 정보였다.