Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준
- 금융문자분석경진대회
- Baekjoon
- Git
- 코로나19
- programmers
- SW Expert Academy
- 편스토랑 우승상품
- gs25
- 프로그래머스 파이썬
- leetcode
- Docker
- dacon
- Kaggle
- github
- 프로그래머스
- 파이썬
- PYTHON
- hackerrank
- ubuntu
- 우분투
- 더현대서울 맛집
- Real or Not? NLP with Disaster Tweets
- 캐치카페
- 편스토랑
- 데이콘
- AI 경진대회
- ChatGPT
- 맥북
- 자연어처리
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 14490번 : 백대열 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 백대열 입니다.
백준의 백대열 문제를 파이썬으로 풀이하였습니다.
👨🏻💻 문제 풀이
숫자 N과 M 이 : 을 사이로 두고 주어지면 두 숫자를 약분한 값을 출력하는 문제입니다.
두 숫자를 약분하여 더이상 나누어지지 않는 숫자로 나누기 위해서는
두 숫자의 최대공약수로 나누어야 합니다.
만약 N이 100 M이 10 이라면 이 둘의 최대공약수인 10을 활용하여 나누면 원하는 값인 10과 1이 나옵니다.
18과 24일 경우라면 최대공약수 6을 활용하여 나누면 됩니다.
최대공약수는 Python의 경우에는 기본으로 제공되는 함수중에 math 의 gcd를 활용하면 정말 쉽게 구할 수 있습니다.
from math import gcd
입력을 받을 때
위와 같이 : 을 가운데에 둔 형태로 두 숫자를 입력 받기에
이를 숫자 2개로 바꾸어주기 위해서는 ":"를 기준으로 split 해주고 map을 통해 int 로 바꾸어주어야합니다.
num1, num2 = map(int, string.split(":"))
여기서 최대공약수를 아까 import 한 gcd 로 구해줍니다.
gcd_num = gcd(num1, num2)
마지막으로 정답의 형태도 입력을 받았을 때와 같이 ":" 를 기준으로 양 옆에 숫자를 붙인 형태이므로
이를 f-string을 활용하여 만들어줍니다.
f"{num1 // gcd_num}:{num2 // gcd_num}"
전체 코드는 아래를 참고해주세요.
👨🏻💻 코드 ( Solution )
from math import gcd
def solution(string):
num1, num2 = map(int, string.split(":"))
gcd_num = gcd(num1, num2)
return f"{num1 // gcd_num}:{num2 // gcd_num}"
if __name__ == "__main__":
string = input()
print(solution(string))
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 11816번 : 8진수, 10진수, 16진수 (Python) (0) | 2021.08.31 |
---|---|
[BaekJoon] 5355번 : 화성 수학 (Python) (0) | 2021.08.30 |
[BaekJoon] 2954번 : 창영이의 일기장 (Python) (0) | 2021.08.28 |
[BaekJoon] 1931번 : 회의실 배정 (Python) (0) | 2021.08.27 |
[BaekJoon] 10823번 : 더하기 2 (Python) (0) | 2021.08.26 |
Comments