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

[⭐ 꼭 다시보기⭐] 프로그래머스 코딩테스트 "입문 문제" Day2

by hwamgai 2026. 6. 22.

문제:  두 수의 나눗셈

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

 

프로그래머스

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

programmers.co.kr

내 코드:

def solution(num1, num2):
    return int(num1/num2 * 1000)

좋은 코드:

def solution(num1, num2):
    answer = (num1/num2)*1000
    return answer//1
solution = lambda x, y: 1000 * x // y

 

 

 

 

문제 : 숫자 비교하기

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

 

프로그래머스

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

programmers.co.kr

내 코드:

#파이토닉하게 작성해보기
def solution(num1, num2):
    return 1 if num1 == num2 else -1

좋은 코드:

def solution(num1, num2):
    return sum([num1==num2])*2-1

 

 

 

 

문제 : 분수의 덧셈

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

 

프로그래머스

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

programmers.co.kr

내 코드 -- 🤖

def solution(numer1, denom1, numer2, denom2):
    answer = []
    
    if denom1 == denom2:
        answer.append(numer1 + numer2)
        answer.append(denom1)
    elif denom1%denom2 == 0:
        num = denom1//denom2
        answer.append(numer1 + numer2*num)
        answer.append(denom1)
    elif denom2%denom1 == 0:
        num = denom2//denom1
        answer.append(numer1*num + numer2)
        answer.append(denom2)
    else:
        answer.append(numer1*denom2 + numer2*denom1)
        answer.append(denom1*denom2)
        
    
    # if answer[0]%answer[1]==0:
    #     answer[0] = answer[0]//answer[1]
    #     answer[1] = answer[1]//answer[1]
    # elif answer[1]%answer[0]==0:
    #     answer[0] = answer[0]//answer[0]
    #     answer[1] = answer[1]//answer[0]
    # else :
    # 🤖 기약분수는 제미나이 도움 받음
    a = answer[0]
    b = answer[1]

    # 유클리드 호제법 반복문
    while b > 0:
        a, b = b, a % b

    answer[0] = answer[0]//a
    answer[1] = answer[1]//a
        
    return answer

좋은 코드:

def solution(denum1, num1, denum2, num2):
    answer = []
    s = 0

    denum0 = (denum1*num2) +(denum2*num1)
    num0 = num1*num2

    for i in range(min(denum0,num0),0,-1):
        if denum0%i == 0 and num0%i == 0:
            s = i
            break

    denum0 /= s
    num0 /= s
    answer.append(denum0)
    answer.append(num0)

    return answer
def solution(denum1, num1, denum2, num2):
    answer = [] 
    if num1 == num2:
        answer = [denum1+denum2, num1]
        return answer

    elif num1 < num2 and num2%num1 == 0:
        num1, num2 = num2, num1
        a = num2 / num1
        answer = [(denum1 * a) + denum2, num2]
        return answer

    else:
        answer = [(denum1 * num2) + (denum2 * num1), num1*num2]
def solution(numer1, denom1, numer2, denom2):
    num = numer1 * denom2 + numer2 * denom1
    den = denom1 * denom2
    #약수구하기
    a_num = [i for i in range(1,num+1) if num%i == 0]
    a_den = [i for i in range(1,den+1) if den%i == 0]
    #최대공약수 구하기
    big_yaksu = [i for i in a_num if i in a_den][-1]
    answer = [num/big_yaksu, den/big_yaksu]


    return answer
def solution(numer1, denom1, numer2, denom2):
    num_sum = numer1 * denom2 + numer2 * denom1
    dem_sum = denom1 * denom2
    for i in range(2,dem_sum):
        while dem_sum%i==0 and num_sum%i==0:
            dem_sum //= i
            num_sum //= i

    return [num_sum, dem_sum]

 

 

 

 

 

문제: 배열 2배 만들기

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

 

프로그래머스

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

programmers.co.kr

내 코드:

# 파이토닉하게 만들기
def solution(numbers):
    return [i * 2 for i in numbers]

좋은코드:

def solution(numbers):
    return list(map(lambda x: x * 2, numbers))
def solution(numbers):
    answer = []
    for num in numbers:
        answer.append(num * 2)
    return answer
import numpy as np

def solution(numbers):
    answer = []
    answer = np.array(numbers)*2
    answer = answer.tolist()


    return answer
def solution(numbers):
    answer = []
    for i in range(len(numbers)):
        answer.append(numbers[i]*2)
    return answer