Skip to content

Latest commit

 

History

History

carpet

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

카펫

  • 문제
  • 간단한 문제 설명
    직사각형 카펫의 테두리 brown 타일의 수와 가운데 red 타일의 수가 주어질 때 카펫의 가로와 세로의 길이를 반환하는 문제. 하나의 타일은 1x1 정사각형이다.
  • 내 코드
  • 내 코드 설명
    주어진 타일들의 수를 더하면 카펫의 크기를 알 수 있다. 카펫의 크기를 만들 수 있는 약수를 구해서 각 약수로 red 타일의 수를 만들 수 있는지 확인한다.
    예를 들어 카펫의 크기가 48이고 red 타일의 수가 24라면, 48의 약수인 224, 316, 412, 68 을 확인한다. 각 약수들에서 2를 빼서 red 타일 수를 만들 수 있는지 확인한다. 22의 경우 2-2 = 0 이기에 224는 아니다. 316은 3-2=1과 16-2=14, 16-4=12... 로 확인했을 때, 114, 112 ...로는 red 타일의 수 24를 만들 수 없다. 이런식으로 확인하면 68은 6-2=4, 8-2=6,이고 4*6=24로 red 타일의 수를 만들 수 있다. 이 경우 8과 6을 반환하면 된다.
    내가 세운 문제 해결 핵심은 약수를 구해 각 약수에서 2씩 빼면서 red 타일의 수를 만들 수 있는지를 확인하는 것이다. 각 약수에서 2씩 뺀 수들의 곱이 red 타일의 수와 같은지를 확인하면서, red 타일의 수보다 작아지는 값이면 그 이후 연산은 하지 않도록 했다.