728x90
📃문제설명
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다.
두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
📝제한사항
- 0 <numer1, denom1, numer2, denom2 < 1,000
🪧입출력 예
numer1 | denom1 | numer2 | denom2 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
입출력 예 #1
- 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
입출력 예 #2
- 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
💻코드
def solution(numer1, denom1, numer2, denom2):
answer = []
result = []
result_num = numer1 * denom2 + numer2 * denom1
result_denom = denom1 * denom2
answer.append(result_num)
answer.append(result_denom)
a, b = answer[0], answer[-1]
while b != 0:
a, b = b, a % b
result.append(answer[0]/a)
result.append(answer[-1]/a)
return result
더보기
🧑💻공부
분수를 덧셈하는 과정은 우선 분모를 통분한 뒤 분자의 덧셈을 한뒤 약분이 가능하다면 기약분수로 만들면 된다.
따라서 각 단계를 코드로 적어주면 된다.
어차피 분자는 더하려는 각 분모와 곱한 뒤 더하면 되고,
분모 또한 각 분모와 곱하면 된다.
그리고 가분수 혹은 약분이 가능한 분수가 되었다면
최대공약수로 나누면 된다.
이처럼 머릿속으로만 코드를 짜내기엔 조금 어려울 수 있으니 원하는 과정을 한줄씩 적어가면서
코드를 완성하면 된다.
본문에 나온 while문은 조건을 벗어날 때 까지 반복하는 예약어이다.
while 조건식:
반복할 코드
변화식
다음과 같은 형식으로 사용할 수 있다.
주의점은 if문과 비슷하다. 콜론 ( : )을 잘 사용하고
들여쓰기를 잘 맞춰야 한다.
728x90
'🐍python3 > Programmers' 카테고리의 다른 글
프로그래머스[코딩테스트 입문]_나머지 구하기 (0) | 2023.06.03 |
---|---|
프로그래머스[코딩테스트 입문]_배열 두 배 만들기 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_숫자 비교하기 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_두 수의 나눗셈 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_몫 구하기 (0) | 2023.06.02 |