본문 바로가기
  • think together
카테부 4기 판교 ai 실무/코테 공부

카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day16

by hwamgai 2026. 6. 9.

문제 : 대문자로 바꾸기

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내코드 :

def solution(myString):
    return myString.upper()

좋은코드 :

#파이썬 내장함수 없이
def solution(myString):
    answer=[]
    for char in myString:
    	if 'a' <= char <= 'z':
        	#ord(char) : 문자를 숫자로
            #ord(char) -32 : 32만큼 이동
            #chr(ord(char)-32) : 이동한 숫자를 문자로
        	answer.append(chr(ord(char)-32))
        else:
        	answer.append(char)
    return "".join(answer)

 

 

 

 

문제: 소문자로 바꾸기

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

def solution(myString):
    return myString.lower()

좋은 코드:

def solution(myString):
    myString = myString.replace("A",'a')
    myString =myString.replace("B",'b')
    myString =myString.replace("C",'c')
    myString =myString.replace("D",'d')
    myString =myString.replace("E",'e')
    myString =myString.replace("F",'f')
    myString =myString.replace("G",'g')
    myString =myString.replace("H",'h')
    myString =myString.replace("I",'i')
    myString =myString.replace("J",'j')
    myString =myString.replace("K",'k')
    myString =myString.replace("L",'l')
    myString =myString.replace("M",'m')
    myString =myString.replace("N",'n')
    myString =myString.replace("O",'o')
    myString =myString.replace("P",'p')
    myString =myString.replace("Q",'q')
    myString =myString.replace("R",'r')
    myString =myString.replace("S",'s')
    myString =myString.replace("T",'t')
    myString =myString.replace("U",'u')
    myString =myString.replace("V",'v')
    myString =myString.replace("W",'w')
    myString =myString.replace("X",'x')
    myString =myString.replace("Y",'y')
    myString =myString.replace("Z",'z')

    return myString
def solution(myString):
    answer = ''

    answer = myString.lower()

    return answer

 

 

 

 

 

 

문제: 배열에서 문자열 대소문자 변환하기

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

🤖
이론적으로는: 이미 대문자인 것에 .upper()를 쓰면 함수 내부 검사가 중복되므로 미세한 시간 낭비가 맞습니다.
실전에서는: 그 낭비되는 시간이 상상 이상으로 극소량(몇 나노초 단위)이기 때문에, 코드를 깔끔하게 유지하기 위해 그냥 한 번에 변환 함수를 적용하는 것이 정석으로 통용됩니다.
def solution(strArr):
    answer = []
    for index, value in enumerate(strArr):
        if index%2 == 0 :
        	#여기에 또 조건문으로 A<=value<=Z 라고 선언했다가
            #aBc 같이 섞여있는 문장이 들어왔을 때 변환하지 못하는 경우가 발생했음
            answer.append(value.lower())
        if index%2 == 1 :
            answer.append(value.upper())
    return answer

좋은코드: 

def solution(strArr):
    return [s.lower() if i % 2 == 0 else s.upper() for i, s in enumerate(strArr)]

 

 

 

 

 

 

문제: A 강조하기

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

string은 append가 아니고 +=이다
def solution(myString):
    answer = ''
    for i in range(len(myString)):
        if myString[i] == 'a' or myString[i] == 'A':
            answer += (myString[i].upper())
        else:
            answer += (myString[i].lower())
    return answer

좋은 코드:

#전부 소문자로 바꾸고, a는 A로 변환
def solution(myString):
    return myString.lower().replace('a', 'A')
def solution(myString):
    return ''.join([i.lower() if i !='a' and i != 'A' else i.upper() for i in myString])

 

 

 

 

문제 : 특정한 문자를 대문자로 바꾸기

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

#1) alp.lower()로 했더니 alp가 소문자가 되어버림

def solution(my_string, alp):
    answer = ''
    for i in range(len(my_string)):
        if my_string[i].lower() == alp.lower():
            answer += alp
        else:
            answer += my_string[i]
    return answer
#2) 자세히보면, 전달받은 알파벳은 대문자가 아니라 소문자고, 그냥 해당 알파벳 확인용이라
# answer에 그냥 alp를 넣으면 안됨

def solution(my_string, alp):
    answer = ''
    for i in range(len(my_string)):
        if my_string[i].upper() == alp.upper():
            answer += alp
        else:
            answer += my_string[i]
    return answer
#3) 문제가 무조건 해당 문자를 대문자로 바꾸는거라 모두 대문자로 변환 후 확인하면 된다

def solution(my_string, alp):
    answer = ''
    for i in range(len(my_string)):
        if my_string[i].upper() == alp.upper():
            answer += alp.upper()
        else:
            answer += my_string[i]
    return answer

 

좋은코드:

#replace를 쓰고 싶었는데 어떻게 써야할지 몰랐다

def solution(my_string, alp):
    return my_string.replace(alp, alp.upper())