일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Container vs VM
- dfs
- 그래프탐색
- 문자열
- 다이나믹 프로그래밍
- 냅색 알고리즘
- LCS 알고리즘
- 깊이 우선 탐색
- Python
- 너비 우선 탐색
- npm start
- 구현
- 최장공통부분수열
- error:0308010C:digital envelope routines::unsupported
- 그래프 탐색
- bfs
- 파이썬
- 배낭 문제
- 클래스
- 그래프 이론
- 모듈러 연산 분배법칙
- lazy evaluation
- 정처기 필기
- db replication
- 수학
- 동적 계획법
- 최장공통부분문자열
- 일단 시도
- Docker 원리
- 나는 바보야...
Archives
- Today
- Total
Save my data
백준 5086 : 배수와 약수 (파이썬) 본문
간단한 수학 문제이다.
각각 입력 받은 수를 n과 n이라고 했을 때,
n를 m으로 나눴을 때 나머지가 있고 m을 n으로 나눴을 때 나머지가 없으면 "factor",
그 반대의 경우는 "multiple",
둘 다 나머지가 있는 경우는 "neither" 로 처리해주었다.
이번 문제는 파이썬 클래스의 getter와 setter를 학습하기 위하여 클래스를 선언하여 풀었다.
import sys
class MultiplesAndDivisors:
def __init__(self):
self.n = 0
self.m = 0
@property
def answer(self):
return self.__ans
@answer.setter
def answer(self, value):
self.__n = value[0]
self.__m = value[1]
self.__ans = self.calculate()
def calculate(self):
self.a = self.__n % self.__m
self.b = self.__m % self.__n
if self.a and self.b:
return "neither"
elif self.a > self.b:
return "factor"
elif self.a < self.b:
return "multiple"
while 1:
N, M = map(int, sys.stdin.readline().split())
if N == 0 and M == 0:
break
res = MultiplesAndDivisors()
res.answer = N, M
print(res.answer)
웹 개발할때 말고는 안쓰던 클래스를 사용해서 문제들을 풀려고 하니, 간단한 구현조차도 잘 안되는 등 시행착오가 많았다.
틈틈히 이런 식으로 문제들을 풀어야겠다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1620 : 나는야 포켓몬 마스터 이다솜 (파이썬) (0) | 2023.03.15 |
---|---|
백준 9506 : 약수들의 합 (파이썬) (0) | 2023.03.12 |
백준 25206 : 너의 평점은 (파이썬) (0) | 2023.03.07 |
백준 10988 : 팰린드롬인지 확인하기 (파이썬) (0) | 2023.03.06 |
백준 1697 : 숨바꼭질 (파이썬) (0) | 2023.03.05 |
Comments