๋ฌธ์ ์ค๋ช
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
์ ์ถ๋ ฅ ์
brown | yellow | return |
8 | 1 | [3, 3] |
24 | 24 | [8, 6] |
10 | 2 | [4, 3] |
ํ์ด: ์ด๋ฒ ๋ฌธ์ ๋ ์์ ํ์์ ๋๋ค.
์ฐ์ brown๊ณผ yellow์ ํฉ์ด ๊ณง ์ ์ฒด ์ฌ๊ฐํ์ ํฌ๊ธฐ๊ฐ ๋๋ฏ๋ก sum์ ๋ง๋ค์ด์ค๋๋ค. -> let sum = brown + yellow
๊ทธ๋ฆฌ๊ณค ๊ฐ๋ก์ ์ธ๋ก๋ฅผ ๋ปํ๋ x,y ๋ณ์๋ฅผ ๋ง๋ค์ด์ค๋๋ค. -> var x = Int(),var y = Int()
๊ทธ๋ฆฌ๊ณ 1๋ถํฐ sum๊น์ง ์ค์ ๋๋์ด ๋จ์ด์ง๋ ์๋ฅผ y๋ก ํ๊ณ ๋๋์ด์ง ์(sum/i)๋ฅผ x๋ก ํ๋ฉด ๊ฐ๋ก์ ์ธ๋ก๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค. -> for i in 1...sum{ if sum%i == 0{ x = sum/i y = i }
๊ทธ๋ฆฌ๊ณค yellow๋ (x-2)๊ณฑํ๊ธฐ(y-2)์ ๋๋ค.
(x-2)๊ณฑํ๊ธฐ(y-2)๊ฐ yellow๊ฐ ๋๋ค๋ฉด for๋ฌธ์ ๋ฉ์ถฐ์ฃผ๊ณ -> if (x-2)*(y-2) == yellow { break }
x,y๋ฅผ ๋ฐํํด์ค๋๋ค. -> return [x,y]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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]
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ฌ๋ฐ๋ฅธ ๊ดํธ Swift (0) | 2020.08.10 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋ค์ ํฐ ์ซ์ Swift (0) | 2020.06.21 |
ํ๋ก๊ทธ๋๋จธ์ค ์์ฅ Swift (2) | 2020.05.18 |
ํ๋ก๊ทธ๋๋จธ์ค ์ซ์์ผ๊ตฌ Swift (0) | 2020.05.18 |
ํ๋ก๊ทธ๋๋จธ์ค H-Index Swift (0) | 2020.05.12 |
๋๊ธ