일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 추천시스템
- 논문리뷰
- 소수 판정
- numpy
- graph
- 그래프란
- #이코테2021
- BruteForchSearch
- 글또8기
- Graph Representation Learning
- 나동빈
- allow_pickle
- 추천시스템 입문
- zerodivide
- CS224W
- 백준
- 질문 정리
- paper review
- 파이썬 머신러닝 완벽가이드 공부
- 이코테
- 강의정리
- BruteForceSearch
- 데이콘 필사
- #나동빈
- 코테공부
- 에스토스테네스의 체
- nan값
- 유클리드 호제법
- 알고리즘
- 수학
Archives
- Today
- Total
꾸준히 써보는 공부 기록
백준 2168번 : 타일 위의 대각선 본문
문제
한 변의 길이가 1cm인 정사각형 모양의 타일이 있다.
이 타일들을 가로가 xcm, 세로가 ycm인 직사각형 모양의 벽에 빈틈없이 붙였다.
x와 y는 정수이다. 이 직사각형에 하나의 대각선을 그렸다.
직사각형에 붙어 있는 x*y개의 타일 중에는 대각선이 그려진 타일도 있고, 그렇지 않은 타일도 있다.
x*y개의 타일 중에서 대각선이 그려져 있는 타일의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 가로의 길이 xcm와 세로의 길이 ycm가 주어진다. x와 y는 1,000,000,000 이하의 자연수이다.
x와 y 사이에는 빈칸이 하나 이상 있다.
출력
첫째 줄에 대각선이 그려져 있는 타일의 개수를 출력한다.
예제 입력 1
8 12
예제 출력 1
16
해결 방법
타일 위에서의 직선을 생각해보았을 때, 좌표 값이 (정수, 정수)로 나왔을 경우에 아닌 경우보다 1칸을 아낄 수 있다.
그렇기 때문에 A + B - gcd(A,B) 로 연산을 하면 원하는 값을 얻을 수 있다.
PyPy3로 제출하였고, 메모리 : 121220 KB 시간 : 100 ms
소스 코드
def gcd(A,B):
mod = A % B
while mod > 0:
A = B
B = mod
mod = A % B
return B
x,y = map(int, input().split())
print(x+y-gcd(x,y))
'Algorithm study > 기타 알고리즘' 카테고리의 다른 글
백준 1929번 : 소수 구하기 (0) | 2021.01.10 |
---|---|
백준 1735번 : 분수 합 (0) | 2021.01.10 |