https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 풀이 방법
1. brown과 yellow를 더한값 sum 초기화
2. 1부터 sum까지 반복하여 sum을 i로 나누었을때 나머지가 0인수들을 찾음
brown이 10 yellow가 2일때 sum은 12임
그러면 약수들 1,2,3,4,6,12에서 if조건문이 걸림
이때 사각형의 특성 가로x세로를 생각해 x는 sum/i y는 i로 초기화해줌
yellow는 brown으로 감싸져있기 때문에
x와 y축이 brown보다 -2 만큼씩 작음
때문에 (x-2) * (y-2)가 yellow의 갯수와 같으면
break문을 이용해 x,y 값을 리턴하도록함
내 코드
import Foundation
func solution(_ brown:Int, _ yellow:Int) -> [Int] {
let sum = brown + yellow
var x = Int()
var y = Int()
for i in 1...sum{
if sum % i == 0{
x = sum / i
y = i
}
if (x-2) * (y-2) == yellow{
break
}
}
return [x,y]
}
'Swift랑 친해지기 > programmers 풀기' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 (Swift) (0) | 2022.09.30 |
---|---|
[프로그래머스] 영어 끝말잇기 (Swift) (0) | 2022.09.28 |
[프로그래머스] 숫자 문자열과 영단어 (Swift) (1) | 2022.09.25 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (Swift) (1) | 2022.09.25 |
[프로그래머스] 최소직사각형 (Swift) (1) | 2022.09.25 |