[백준 | 파이썬] 체스판 조각

devheyrin·2022년 2월 9일
0

codingtest

목록 보기
6/65

문제

상근이는 3003번에서 동혁이가 발견한 체스판을 톱으로 자르려고 한다.

상근이는 체스판을 최대 N번 자를 수 있으며, 변에 평행하게만 자를 수 있다. 또, 자를 때는 체스판의 그 변의 한쪽 끝에서 다른쪽 끝까지 잘라야 한다. 자른 후에는 조각을 이동할 수 없다.

이때, 최대 몇 조각을 낼 수 있는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다. (1 ≤ N ≤ 100)

출력

첫째 줄에 상근이가 얻을 수 있는 조각의 최댓값을 출력한다.

예제 입력 1

1

예제 출력 1

2

예제 입력 2

3

예제 출력 2

6

Solution 1

n = int(input())
if n % 2 == 0:
    print((n//2+1)**2)
else:
    print((n//2+2) * ((n//2+2)-1))
  • 풀이 설명 그림을 그려보면 대략 다음과 같은 규칙을 찾을 수 있다. 1 2 3 4 5 6 7 8 9
    2 4 6 9 12 16 20 25 30
    21 22 32 33 43 44 54 55 6*5 문제에서 체스판은 변에 평행하게만 자를 수 있고, 변의 한쪽 끝에서 다른쪽 끝까지 잘라야 한다고 했기 때문에 잘라서 최댓값을 얻기 위해서는 가로, 세로를 번갈아가면서(교차하며) 잘라야 한다. 최대 2번 자를 수 있을 때 가로로만 2번 자르거나 세로로만 2번 자르면 조각이 3개가 되지만, 가로로 1번 세로로 1번 자르면 4개가 된다! 짝수일 때와 홀수일 때를 나누어 최댓값을 구하는 계산식을 넣어주어 코드를 완성했다.
profile
개발자 헤이린 🔜 프로덕트 매니저로 나아가는 중!

0개의 댓글

관련 채용 정보