백준 2163번 문제 (초콜릿 나누기) 파이썬

Sangho Kim·2022년 7월 1일
0

백준 문제풀이

목록 보기
1/2
post-thumbnail

개요


이 문제를 접하고 이제는 조금 익숙해진 map(int, input().split())을 사용해서 풀이를 시작했다.

문제를 한번 살펴보자. 언어는 파이썬을 사용!


문제


문제에서 봐야 할 것은
1. NxM 크기의 초콜릿을 가지고 있는것
2. 총 NxM개의 조각으로 쪼개려고 하는 것
3. ! 쪼갠 초콜릿 조각을 하나들고 다시 쪼개는 과정을 반복하는것 !
4. 횟수는 최소한으로 할 것


여기서 중요한 점은 초콜릿을 겹쳐서 쪼개는 것이 아닌 쪼갠 초콜릿을 하나 들고 쪼개는 과정을 반복하기 때문에 1x1 크기의 초콜릿을 들고 쪼갠다고 생각하면 쉽다.

내가 처음 문제를 풀었을때 헷갈렸던 점이 문제에서 최소한의 횟수라고 언급을해서 반으로 쪼개고 그걸 겹쳐서 또 반으로 쪼개는 것으로 생각을 했는데 아니었다.



풀이


그림을 그려서 표현을 해보았다.

m-1 을 하고나서 세로로 긴 초콜릿이 두개가 존재하는데 두개를 동시에 잡고 쪼개는 것이 아닌 하나하나 따로 쪼갠다고 생각하면 된다!

그렇게 되면 식은 그림처럼 NxM-1 이 나오게 되고

코드를 입력해보면

N, M = map(int,input().split())
 
print(N*M-1)

이런 코드가 나오게 된다.

풀이 끝!

profile
Immediately, certainly, until it becomes.

0개의 댓글