알고리즘 공부/코딩테스트(프로그래머스)

[프로그래머스 Level 1] 이상한 문자 만들기 (Python 파이썬) 풀이 방법

yepppi 2023. 1. 7. 22:53
반응형
SMALL

오늘은 DAY OFF였지만 정말 조금이라도 공부하는 습관을 잃지 않고자 집에 들어와 밤늦게 노트북을 켜고 책상앞에 앉았다. Level 1 문제를 풀었는데, 6점이나 받아서 놀랐다. 며칠 전 훨씬 어려웠던 Level 2는 4점이었는데... 무슨 기준으로 점수를 주는건지 잘 모르겠다.

 

 

 

프로그래머스 <이상한 문자 만들기> 문제 보기

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

 

프로그래머스

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

programmers.co.kr

 

 

프로그래머스 <이상한 문자 만들기> 문제 풀이

def solution(s):
    answer = ''
    words = s.split(' ')
    for i in words:
        for k in range(len(i)):
            if k % 2 == 0:
                answer += i[k].upper()
            else:
                answer += i[k].lower()
        answer += ' '
    return answer[:-1]

문자열이 아니라 단어를 기준으로 하여 인덱스홀수일 경우에는 대문자로, 짝수일 경우에는 소문자로 바꾸어 문자열을 return 하는 문제다. 따라서 단어별 체크를 위해 split을 사용하여 리스트에 우선 담아준 후 리스트에 담긴 각 단어별로 for문을 돌며 인덱스의 홀수짝수 여부를 판단하여 대문자/소문자로 바꿀 수 있도록 코드를 구현하였다. 이후 마지막에 문자열에 공백이 추가로 붙어버리기 때문에 [:-1]까지만 반환해주었다.

 

 

 

다른 풀이

def solution():
	return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))

한 줄 풀이를 보고 감탄하며 가져왔다. 참 코딩 잘하는 사람들이 많다!

 

 

오늘은 여기저기 돌아다녔더니 10000보 정도 걸었다. 오랜만에 오래 걸은 탓인지 다리가 너무 아프다. 빨리 씻고 자야지..

반응형
LIST