[백준] #2168 타일 위의 대각선 python

2023. 5. 30. 10:41

https://www.acmicpc.net/problem/2168

 

2168번: 타일 위의 대각선

첫째 줄에 가로의 길이 xcm와 세로의 길이 ycm가 주어진다. x와 y는 1,000,000,000 이하의 자연수이다. x와 y사이에는 빈칸이 하나 이상 있다.

www.acmicpc.net

 

📕 설명 📕

 

유클리드 호제법.

 

대각선이 지나는 점의 개수는 x, y의 최대공약수임을 그림 그려서 알아냈다.

 

그리고 대각선이꼭지점을 지나가는 사각형은 x + y - 1

 

지나가지 않는 사각형은 x + y -1 -(점의 개수)

 

그래서,

 

x + y - gcd(x, y) 라는 식을 구할 수 있다.

🧑🏻‍💻 나의 풀이 🧑🏻‍💻

 

def gcd(x, y):
    if y == 0:
        return x
    else:
        return gcd(y, x % y)


x, y = map(int, input().split())
x, y = max(x, y), min(x, y)

result = x + y - gcd(x, y)
print(result)

'Programming > Algorithm' 카테고리의 다른 글

[백준] #1080 행렬 python  (0) 2023.06.01
[백준] #1629 곱셈 python  (0) 2023.05.31
[백준] #1308 D-Day python  (0) 2023.05.29
[백준] #1240 노드사이의 거리 python  (0) 2023.05.26
[백준] #1972 놀라운 문자열 python  (0) 2023.05.25

BELATED ARTICLES

more