[Programmers/Lv. 0]

1. 두 수의 나눗셈


문제는 함수의 매개변수로 주어진 정수 num1과 num2를 1,000으로 나눈 값을 곱하고 정수 부분만 반환하는 것이다.

(내가 생각한 해결 과정)

문자 그대로 두 값을 나누고 1000을 곱한 다음 정수를 반환합니다.

(암호)

더보기

내 코드

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


2. 숫자 비교


(문제 설명, 제한 사항, 입/출력 예시)

함수의 매개변수로 입력된 정수 num1과 num2가 같으면 1을 반환하고, 그렇지 않으면 -1을 반환합니다.

(내가 생각한 해결 과정)

물론 if 문을 사용하겠지만 파이썬 같은 코드를 사용했습니다.

(암호)

더보기

내 코드

def solution(num1, num2):
    return 1 if num1==num2 else -1


3. 분수의 추가


첫 번째 분자와 분모로 number1과 denom1, 두 번째 분자와 분모로 number2와 denom2가 주어졌을 때, 두 분수의 합을 기약 분수로 나타내십시오.

(내가 생각한 해결 과정)

먼저 분모를 denom1과 denom2의 곱으로 설정합니다.

따라서 카운터의 값은 numer1에 denom2를 곱하고 numer2에 denom1을 곱하여 두 값을 더합니다.

그런 다음 두 함수가 두 분모의 최대 공약수만큼 줄어들면서 결과가 반환됩니다(최대 공약수는 수학 모듈의 gcd 함수를 사용하는 방법입니다).

(암호)

더보기

내 코드

import math

def solution(numer1, denom1, numer2, denom2):
    numer3, denom3 = numer1*denom2 + numer2*denom1, denom1 * denom2   
    gcd = math.gcd(numer3, denom3)
    
    return (numer3, denom3) if gcd==1 else (numer3/gcd, denom3/gcd)

다른 사람의 코드

분수 계수를 사용하여 분수를 쉽게 계산하는 방법도 있습니다.

from fractions import Fraction

def solution(denum1, num1, denum2, num2):
    answer = Fraction(denum1, num1) + Fraction(denum2, num2)
    return (answer.numerator, answer.denominator)


4. 어레이 복제


숫자 배열의 문제는 각 요소를 두 배로 하는 배열을 반환하는 것입니다.

(내가 생각한 해결 과정)

목록 이해력으로 문제를 해결했습니다.

(암호)

더보기

내 코드

def solution(numbers):
    return (i*2 for i in numbers)

다른 사람의 코드

목록 내포로 해결할 수 있는 문제는 람다 및 지도 함수로도 해결할 수 있습니다.

def solution(numbers):
    return list(map(lambda x: x * 2, numbers))