-
[programmers/Swift] 카펫Archive/Questions 2022. 5. 14. 18:11728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 완전탐색 - 카펫
Constraints :
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
// // Created by Yongwoo Marco on 2022/05/12. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ brown:Int, _ yellow:Int) -> [Int] { for row in 1...(yellow == 1 ? 2 : yellow/2) { if yellow % row == 0 { let yellowWidth = yellow / row let yellowHeight = row if 2 * (yellowWidth + 2) + 2 * yellowHeight == brown { return [yellowWidth + 2, yellowHeight + 2] } } } return [] } print(solution(10, 2)) // [4, 3] print(solution(8, 1)) // [3, 3] print(solution(24, 24)) // [8, 6]
How I tried this :
가로길이가 세로길이보다 크기 때문에yellowWidth + 2 가 성립했다..
노란색이 4개라면
22222
211112
22222
3 3 3 3
3 1 1 3
3 1 1 3
3 3 3 3
처럼 두 가지가 나오고 갈색은 14개, 12개로 달라진다
그래서 주어진 갈색 갯수가 맞을경우에 리턴하도록 변경했다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 행렬의 곱셈 (0) 2022.05.14 [programmers/Swift] JadenCase 문자열 만들기 (0) 2022.05.14 [programmers/Swift] N개의 최소공배수 (0) 2022.05.13 [programmers/Swift] H-Index (0) 2022.05.13 [programmers/Swift] K번째수 (0) 2022.05.12