[파이썬] 1484 : 다이어트 (골드5)
1484번: 다이어트
성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다.
www.acmicpc.net
문제
풀이
방향성 생각
- 몸무게 변화량 G = (a+b)(a-b)로 인수분해된다.
- 자연수 몸무게만 취급한다.
- 예제 입력을 보면 4를 기준으로 +- 1, 8 기준으로 +- 7
- 이전, 이후 몸무게의 평균값이 정수이면 된다.
- 이전*이후 = G이므로, G의 약수를 구한다.
전체코드
G = int(input())
temp = {}
for i in range(1,int(G**0.5)+1):
p,q = divmod(G,i)
if not q and not p==i:
temp[i] = p
answer = []
for a,b in temp.items():
p,q = divmod(a+b,2)
if not q:
answer.append(p)
answer.sort()
if not answer:
print(-1)
else:
for ans in answer:
print(ans)
- 딕셔너리 temp에 i로 나누었을 때 나누어 떨어진 값 p를 매칭한다.
- 매칭한 값 a,b의 평균값이 정수이면 정답에 추가.
코멘트
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 10986 : 나머지 합 (골드3) (0) | 2024.04.21 |
---|---|
[파이썬] 프로그래머스 : 여행경로 (Lv.3) (0) | 2024.03.25 |
[파이썬] 백준 2632 : 피자판매 : (골드2) (0) | 2024.02.25 |
[파이썬] 백준 3089 : 네잎 클로버를 찾아서 (골드2) (0) | 2023.12.18 |
[파이썬] 백준 1035 : 조각 움직이기 (골드1) (0) | 2023.12.16 |
[파이썬] 백준 22945 : 팀 빌딩 (골드4) (0) | 2023.12.12 |
[파이썬] 프로그래머스 : 모음사전 (Lv.2) (0) | 2023.11.30 |
댓글