Dia Egg - Shugo Chara

Python공부/프로그래머스

(Python)이상한 문자 만들기(프로그래머스 Lv.1)/upper(),lower(), 한줄코딩연습

별ㅇI 2023. 6. 14. 00:22
728x90
반응형

이상한 문자 만들기(프로그래머스 Lv.1)

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

def solution(s):
    answer = ''
    s = list(s)
    even = 0
    n = 0
    while(n<len(s)):
        if s[n] == ' ':
            even = 0
        else:
            if even == 0:
                s[n] = s[n].upper()
                even = 1
            else:
                s[n] = s[n].lower()
                even = 0
        n += 1
        answer = ''.join(s)
    return answer

upper함수가 그냥 s[n].upper()하면 sort함수처럼 정리되는 줄 알았는데 배정하지않는 이상 그대로라는 것을 알게되었다. 

even을 홀짝수를 가르키는 깜박이로 쓰는 방법을 사용하였다. 처음에 맨 앞이 공백이라던가 공백이 동시에 여러번이라던가 하는 변수를 신경쓰지 못했었다. 앞으로 좀 더 시야를 넓게 보아야겠다.

 

베스트코드

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

 이건 map함수와 lambda함수에 대한 이해가 있어야 이해 할 수 있다. 아래 간단히 정리해 둔 링크를 첨부하였다.

 

https://star-ccomputer-go.tistory.com/61

 

(Python) map함수와 lambda형식의 활용

map() map의 기본 설명은 보통 map(function, iterable) # 첫 번째 매개변수로는 함수, 두 번째 매개변수로는 반복 가능한 자료형(리스트, 튜플 등) 이라고 설명되어있는데, 간단히 말하자면 map(인자에 하

star-ccomputer-go.tistory.com

 

728x90
반응형