안 풀려서 고민하다 보니, 점점 어렵게 생각하게 됐다. 전에 풀었던, 최대공약수를 이용하면 될 것 같은 느낌? 그런데, 바로 풀지는 못해서 이번에도..다른 분의 풀이를 참고하여.. 그래서 최대공약수와 최소공배수 함수를 만들어 풀어보았다.
import Foundation
//최대공약수 gcd 함수
func gcd(_ a:Int, _ b:Int) -> Int {
if b == 0 {
return a
} else {
return gcd(b, a % b)
}
}
//최소공배수 lcm 함수
func lcm(_ a:Int, _ b:Int) -> Int {
return a*b / gcd(a,b)
}
func solution(_ n:Int) -> Int {
return lcm(n,6) / 6
}
풀고 나서 다른 분의 풀이를 보았는데, 이렇게 풀 수도 있네? 라는 생각이 들었다. while 문을 이용하여 6조각이 한 세트인 a판 피자를 n으로 나누어질 때까지 a를 1부터 카운트 업하는 것이다.
import Foundation
func solution(_ n:Int) -> Int {
// result 변수가 피자의 판 수
var result = 1
while (result * 6) % n != 0 {
result += 1
}
return result
}
다음부터는 문제에 대해 좀 더 고민할 수 있기를!