본문 바로가기

알고리즘/python

[python/파이썬] 백준 3004 체스판 조각

반응형

[문제 출처]

https://www.acmicpc.net/problem/3004

 

3004번: 체스판 조각

상근이는 3003번에서 동혁이가 발견한 체스판을 톱으로 자르려고 한다. 상근이는 체스판을 최대 N번 자를 수 있으며, 변에 평행하게만 자를 수 있다. 또, 자를 때는 체스판의 그 변의 한쪽 끝에서

www.acmicpc.net

 

 

[소스 코드]

 

사각형을 가로 세로로 잘랐을 때 가장 조각이 많이 나올 때의 조각의 수를 구하는 문제이다.

한 방향으로 n번 자른다면 조각은 n+1개가 생긴다.

가로로 n번 세로로 m번 자르게 되면 조각은 (n+1) * (m+1) 개가 생성된다.

 

가장 많은 조각이 나오는 경우는 n번을 자른다고 할 때, 절반은 가로로 절반은 세로로 자를 때이다.

n이 짝수라면 절반 나눠서 가로 세로 자르면 되고, 홀수라면 1번 차이 나게 나눠서 자르면 된다.(연속되는 두 수)

 

ex) 

n = 4 > 2, 2

n = 5 > 2, 3

n = 7 > 3, 4

 

#3004

n = int(input())

if n==1:
  print(2)
else:
  a = n//2
  b = n - a

  print((a+1)*(b+1))

 

반응형