- 문제
- 간단한 문제 설명
직사각형 카펫의 테두리 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 타일의 수보다 작아지는 값이면 그 이후 연산은 하지 않도록 했다.
carpet
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||