반응형
입력 & 출력
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때
카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
풀이
노란색은 갈색의 -2 크기이고, 카펫의 크기는 갈색 + 노란색이다
카펫 크기의 공약수를 구한다
공약수의 첫번째 + i, 마지막 - i 값을 곱해 노란색 값과 일치할 경우 이를 반환한다
+ 공약수 개수가 1일 경우 정사각형이니 위 경우를 반복할 필요는 없다
Swift 전체 코드
var array = [Int]()
for i in 2..<(brown + yellow) / 2 + 1 {
if (brown + yellow) % i == 0 {
array.append(i)
}
}
if array.count == 1 {
array.append(array.first!)
return array
}
for i in 0..<array.count {
if (array[i] - 2) * (array[array.count - 1 - i] - 2) == yellow {
return [array[array.count - 1 - i], array[i]]
}
}
return array
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] DFS / BFS - 타켓 넘버 (0) | 2021.04.01 |
---|---|
[프로그래머스] 완전탐색 - 모의고사 (0) | 2021.03.31 |
[프로그래머스] 정렬 - H-Index (0) | 2021.03.31 |
[프로그래머스] 정렬 - K번째 수 (0) | 2021.03.31 |
[프로그래머스] 정렬 - 가장 큰 수 (0) | 2021.03.31 |