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

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

by hwamgai 2026. 6. 15.

문제: 0 떼기

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

 

프로그래머스

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

programmers.co.kr

내 코드:

def solution(n_str):
    answer = ''
    for i in range(len(n_str)):
        if n_str[i] != '0':
            answer = n_str[i:]
            break
    return answer

좋은 코드:

def solution(n_str):
    return n_str.lstrip('0')
def solution(n_str):
    return str(int(n_str))

 

 

 

 

 

문제 : 두 수의 합

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

 

프로그래머스

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

programmers.co.kr

내 코드: -- 해결 못함 --

# ❌ 런타임 에러
def solution(a, b):
    answer = str(int(a) + int(b))
    return answer
# ❌ 런타임 에러
def solution(a, b):
    num_a, num_b = 1, 1
    answer_a, answer_b = 0, 0

    for i in range(len(a)):
        answer_a = answer_a + (int(a[-1-i]) * num_a)
        num_a = num_a * 10
        
    for i in range(len(b)):
        answer_b = answer_b + (int(b[-1-i]) * num_b)
        num_b = num_b * 10
        
    answer = answer_a + answer_b

    return str(answer)

🤖 제미나이 코드:

def solution(a, b):
    answer = []
    idx_a, idx_b = len(a)-1, len(b)-1
    carry, num = 0, 0
    
    while idx_a >= 0 or idx_b >= 0 or carry > 0:
        if idx_a >= 0:
            num_a = int(a[idx_a])
            idx_a -= 1
        else:
            num_a = 0
        
        
        if idx_b >= 0:
            num_b = int(b[idx_b])
            idx_b -= 1
        else:
            num_b = 0
        
        
        
        num = carry + num_a + num_b
        
        answer.append(str(num%10))
        
        carry = num//10
        
        
    
    answer = answer[::-1]
    
    return "".join(answer)

좋은 코드:

(+) 왜 내가 맨처음에 한 코드는 런타임에러가 난거지..?

def solution(a, b):
    return str(eval(a + "+" + b))

 

 

문제: 문자열로 변환

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

 

프로그래머스

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

programmers.co.kr

내 코드:

def solution(n):
    return str(n)

좋은 코드:

def solution(n):
    answer = f'{n}'
    return answer

 

 

 

 

문제: 배열의 원소 삭제하기 

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

 

프로그래머스

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

programmers.co.kr

내코드:

list 해당원소 지우기
a = [1, 2, 3, 2]
a.remove(2)
def solution(arr, delete_list):
    answer = arr
    
    for i in range(len(delete_list)):
        if delete_list[i] in arr:
            answer.remove(delete_list[i])
            
    return answer

좋은 코드:

def solution(arr, delete_list):

    return [i for i in arr if i not in delete_list]
def solution(arr, delete_list):
    answer = []
    for a in arr:
        if a not in set(delete_list):
            answer.append(a)
    return answer

 

 

 

 

 

문제: 부분 문자열인지 확인하기

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

 

프로그래머스

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

programmers.co.kr

내 코드:

def solution(my_string, target):
    answer = 0
    
    for i in range(len(my_string)-len(target)+1):
        # print(my_string[i:len(target)+i])
        
        if my_string[i:len(target)+i] == target:
            answer = 1
            
    return answer

좋은 코드:

def solution(my_string, target):
    return int(target in my_string)
def solution(my_string, target):
    return 1 if my_string.find(target) >= 0 else 0
def solution(my_string, target):
    answer = 0

    my_string2 = list(my_string)

    for i in range(len(my_string)):
        if my_string2[:len(target)] == list(target):
            return 1
        my_string2.pop(0)

    return answer