코딩테스트

[프로그래머스]이상한 문자 만들기(python)

다있는닉네임 2023. 1. 6. 11:56

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

 

프로그래머스

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

programmers.co.kr

문제

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

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

s return
“try hello world” “TrY HeLlO WoRlD

문제 풀이

def solution(s):
    answer = []
    temp_word = s.split(' ')
    for word in temp_word:
        res =''
        for i in range(len(word)):
            if i % 2:
                res += word[i].lower()
            else:
                res += word[i].upper()
        answer.append(res)
    return ' '.join(answer)

  1. 문자열을 공백으로 나누어 준다
  2. 짝수인 경우는 대문자 홀수인 경우는 소문자로 변경

관련 개념

  1. split()
    • str.split() : 띄어쓰기, 엔터등을 구분해서 문자열 나눔
    • str.split(‘구분자’) : 파라미터로 입력된 구분자를 통해 문자열을 나눔
  2. 문자열 대소문자 변경
    • str.lower(): 문자열에 있는 모든 문자들을 소문자로 변환
    • str.upper(): 문자열에 있는 모든 문자들을 대문자로 변환
  3. join()
    • ‘구분자’.join(리스트): 리스트 값 사이의 구분자를 넣어줘 문자열을 합쳐줌