본문 바로가기

Baekjoon Online Judge(BOJ)

Baekjoon 2163번 : 초콜릿 자르기 (Python)

 

안녕하세요! 오랜만에 포스팅을 하는 것 같습니다:)
제가 아직은 장교로 군 복무중이다 보니 

현행 작전에 투입되어있어서 포스팅은 조금 어려웠습니다 ㅠ

이번 포스팅 주제는 파이썬 복습을 위한 + 추가 학습을 위한

백준 문제풀이입니다.

 

아무래도 희망 직업군은 AI분야이다보니

머신러닝/딥러닝을 공부하면서 파이썬 복습도 꾸준히 하려 합니다.

간단하게 문제와 답안, 설명으로 구성하여 포스팅할 예정인데

계속해서 공부하는 모습을 보이고 싶네요^^

Question

 

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

 

Explanation

초콜릿이 N * M형태이기 때문에
N과 M을 입력받아서 곱하는 것까지는 이해되는제
왜 -1을 해줘야하는지 궁금하실 수 있습니다.
여기에는 사실 너무나 간단한 규칙이 하나 있습니다.
예를 들어, 2*2형태의 초콜릿이 있으면
몇 번 잘라야 모든 초콜릿이 1*1 형태가 되나요?
답은 세 번입니다.
다음으로 2*3 형태는? 5번
3*3 형태는? 8번 잘라야 모든 초콜릿이 1*1이 됩니다.
이처럼 초콜릿이 1*1 형태가 되기 위한 커팅횟수는
N * M 초콜릿의 조각 총 개수보다 하나 적다는 규칙이 발생하는 것입니다.
따라서 답은 N * M에서 -1만 해주면 되는 것이죠:)