티스토리 뷰
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42842
내 풀이
import Foundation
func solution(_ brown:Int, _ yellow:Int) -> [Int] {
var size: [Int] = []
var totalSize: Int = brown + yellow
for height in 1...totalSize {
let width = totalSize / height
if (width - 2) * (height - 2) == yellow {
size.append(width)
size.append(height)
}
}
return size
}
- width값 구하기
- totalSize는 brown + yellow로 구했으니, width * height로 만들면 됩니다.
- 반복문으로 height값을 증가시키면서 width값을 구합니다.
예) brown = 10, yellow = 2 일 경우
width, height 값이 나오는 경우는 아래와 같습니다.
1, 12 | 2, 6 | 3, 4 | 4, 3 | 6, 2 | 12, 1
4. yellow 면적을 구해서 가로 세로의 길이를 알 수 있습니다.
5. yellow 면적을 구하려면 가로 양옆을 하나씩 빼고 (-2), 세로 양옆을 하나씩 빼면(-2) 아래와 같은 공식이 나옵니다.
6. (width - 2) * (height * 2) = yellow
7. 구해진 값으로 size에 대입해주면 끝!
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift 프로퍼티
- swift 고차함수
- Swift 알고리즘
- swift property
- 2023년 회고
- Swift
- Swift joined()
- swift reduce
- Swift joined
- Swift 프로그래머스
- Swift inout
- Swift Error Handling
- Combine: Asynchronous Programming with Swift
- Swift ModernRIBs
- RTCCameraVideoCapturer
- iOS error
- swift (programmers)
- swift programmers
- CS 네트워크
- removeLast()
- Swift init
- Swift RIBs
- Swift 내림차순
- RIBs tutorial
- Swift Leetcode
- 원티드 프리온보딩
- Swift final
- swift protocol
- Class
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함