Algorithm/📊 Problem Solving

[백준/BOJ] 13301 - 타일 장식물

posted by sangmin

13301 - 타일 장식물

문제

대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다.

image

그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다.

1, 1, 2, 3, 5, 8, …

지수는 문득 이러한 타일들로 구성되는 큰 직사각형의 둘레가 궁금해졌다. 예를 들어, 처음 다섯개의 타일이 구성하는 직사각형(위에서 빨간색으로 표시한 직사각형)의 둘레는 26이다.

타일의 개수 N(1 ≤ N ≤ 80)이 주어졌을 때, N개의 타일로 구성된 직사각형의 둘레를 구하는 프로그램을 작성하시오.

코드

import sys
N = int(input())

arr = [0, 1, 1]
for i in range(3, 81):
    arr.append(arr[i-1] + arr[i-2])

if N == 1:
    print(4)
else:
    w, h = arr[N] + arr[N-1], arr[N]
    print(2 * (w + h))

한마디

타일의 개수는 최대가 80개이므로 시간초과 날 것 같지는 않았다. 타일 크기는 피보나치 수열과 똑같았다.

 

13301번: 타일 장식물

대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개

www.acmicpc.net

 

'Algorithm > 📊 Problem Solving' 카테고리의 다른 글

[백준/BOJ] 1793 - 타일링  (0) 2021.02.04
[백준/BOJ] 1965 - 상자넣기  (0) 2021.02.03
[백준/BOJ] 9625 - BABBA  (0) 2021.02.01
[백준/BOJ] 1788 - 피보나치 수의 확장  (0) 2021.02.01
[백준/BOJ] 1912 - 연속합  (0) 2021.02.01