jyamethyst21 님의 블로그

백준 2163번- '초콜릿 자르기' (PYTHON 풀이) 본문

CODING 💻

백준 2163번- '초콜릿 자르기' (PYTHON 풀이)

jyamethyst21 2025. 12. 4. 16:09

문제:

 

이번 문제는 단계때문에 매우 어려울 것이라고 생각하지만 사실은 아주아주아주 쉬운 문제이다.

일단 필자는 문제 설명을 보면서 무조건 n*m-1의 값이 출력되면 되는 것 아닌가? 라고 생각했고, 예제 출력을 보면서 확신했다.

'무조건 n*m-1의 값이 출력되면 되는 것 아닌가?' 라고 생각한 이유는 초콜릿 모양을 보며 생각했기 때문이다.

아래 그림을 보겠다.

 

이런 모양의 3*3의 초콜릿이 있다고 가정해보자

이 초콜릿을 한 조각씩 자른다고 한다면, 우선 가로 방향으로 2번 잘라지고 잘라진 세조각을 각각 또 2조각씩 잘라야 한조각씩 남게 될 것이다. 그럼 결과적으로 총 8번 잘라야하는 것이고 3*3=9 여기서 -1을 하면 동일한 횟수가 출력된다.

그러므로 N*M - 1 과 같은 규칙이 생긴다.

 

풀이:

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

위 규칙을 그대로 출력하면 다음과 같다.

규칙만 찾으면 코드 작성은 아주 쉬웠던 문제이다.