jyamethyst21 님의 블로그

프로그래머스 - 'A 강조하기' (PYTHON 풀이) 본문

CODING 💻

프로그래머스 - 'A 강조하기' (PYTHON 풀이)

jyamethyst21 2026. 5. 11. 11:22

문제:

 

문자열에 a가 있으면 A로, 그 외의 문자는 전부 소문자로 바꾸는 문제이다.

 

풀이:

def solution(myString):
    new_string = []

    for i in myString:
        if i == 'a' or i == 'A':
            new_string.append('A')
        elif i != 'A' and i == i.upper():
            new_string.append(i.lower())
        elif i == i.lower():
            new_string.append(i.lower())

    return ''.join(new_string)

문자열의 문자를 하나씩 검사해서 a나 A가 있으면 새로운 리스트에 A를 넣도록 하고, 그 외의 A가 아니면서 대문자인 경우에는 전부 소문자로 바꾸도록 조건문을 넣었다.

효율보다 생각나는 로직 그대로 넣어서 조금 지저분한데, 가장 간단하게 수정하면 아래와 같다.

def solution(myString):
    return myString.lower().replace('a', 'A')

전부 소문자로 바꾼 뒤 a에 해당하는 부분만 A로 바꿔서 리턴하는 코드이다.

이 방법이 훨씬 간단하고 파이썬의 장점을 잘 활용한 코드라고 볼 수 있다.

(참고로 upper()는 대문자로, lower()는 소문자로 바꿔주는 역할, replace(지정, 바꿀 문자열)는 지정 문자열을 바꿀 문자열로 전부 바꿀 수 있는 함수이다.)