[백준/파이썬] 11896번 풀이

업데이트:



문제 정보


풀이

문제

승현이는 웹툰을 보는 것보다 더 생산적인 활동을 하고자 합니다. 그래서 종이에다가 아래와 같은 그림을 하나 그렸습니다.

남들과 보는 눈이 다른 승현이는 밑의 사각형 부분은 직선을 하나 그어서 모든 변을 자를 수 있다는 것을 알게 되었습니다.

이제 무슨 이야기가 나올 지 다 아시겠지만.. 승현이는 갑자기(?) 이러한 조건을 만족하는 다각형들의 종류가 몇 가지나 될지 궁금해졌습니다.

직선을 하나 그어서 모든 변을 자를 수 있는 n각형이 존재하는 모든 n들의 합을 구하는 프로그램을 작성하세요. 단 이러한 다각형은 무한히 존재할 것 같으니, n은 a 이상 b 이하여야 합니다.

입력 요약
첫 번째 줄에 두 자연수 a와 b가 공백을 사이로 두고 주어집니다. (1 ≤ a ≤ b ≤ 109)

출력 요약
첫 번째 줄에 위에서 요구한 답을 출력합니다.

코드

a,b=map(int,input().split())
a,b=max((a+1)//2-1,1),max(b//2,1)
print(b*(b+1)-a*(a+1))

설명

핵심은 구현 관점에서 승현이는 웹툰을 보는 것보다 더 생산적인 활동을 하고자 합니다. 그래서 종이에다가 아래와 같은 그림을 하나 그렸습니다.

남들과 보는 눈이 다른 승현이는 밑의 사각형 부분은 직선을 하나 그어서 모든 변을 자를 수 있다는 것을 알게 되었습니다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



다음 읽을거리

관련 허브 페이지에서 같은 주제의 글을 이어서 확인할 수 있습니다.

댓글남기기