๐ ๋ฌธ์
https://www.acmicpc.net/problem/1476
๐ ์ฒซ๋ฒ์งธ ํ์ด - ํ๋ ธ์ต๋๋ค
๋ณด์๋ง์, ๋๋ ์ ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ํ๋ฆฌ๊ฒ ๋ค! ๋ผ๋ ์๊ฐ์ด์๋ค. ๊ทธ๋์ ์๊ฐํด๋ธ๊ฒ, return ๊ฐ์ผ๋ก ๋์ค๋ ๊ฐ์ ๊ฐ๊ฐ 15, 28, 19๋ก ๋๋ ์ฃผ๋ฉด, ์์ ์ ๋ ฅ๊ฐ์ด ๋์จ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ฌธ์ ์กฐ๊ฑด์์ '์ต์'๊ฐ์ ์ฐพ์์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๊ฒฝ์ฐ์์๋ฅผ ๋ค for๋ฌธ์ผ๋ก ๋๋ ค์ค๋ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ ํ๋ 2์ด๋ก ์๊ฐ๋ณด๋ค ๊ธธ์๋ค. ์ง๋๋ฒ์ ์๊ฐ์ด๋ฅผ ์ด๋ป๊ฒ ๊ณ์ฐํด์ผํ๋์ง๋ชจ๋ฅด๊ฒ ๋ค๊ณ ๊ธ์ ๋จ๊ฒผ์๋๋ฐ,,, ๋ ๋๋ฌด๋ ๊ฐ์ฌํ๊ฒ๋,, ์ ์ฃผ๋์ด ๋ต๋ณ์ ๋จ๊ฒจ์ฃผ์ จ๋ค .. ํญ์ ์ ๋ธ๋ก๊ทธ ๊ธ ๋ณด์๊ณ ๋๊ธ ๋ฌ์์ฃผ์ฌ์ ๋ ๊ฐ์ฌํ๋ค ใ ใ ๐๐ป ๊ฐ์ฌํฉ๋๋ค ๐ท๐
ํด๋น ๋ฌธ์ ์์๋ 15, 28, 19 ๋ฅผ ๋์ด๊ฐ๋ฉด ๋ฌด์กฐ๊ฑด 1๋ถํฐ ์์ํ๋ค. ๊ทธ๋ผ ๊ฒฐ๊ตญ ๋์ฌ ์ ์๋ ์ต๋ ์๋ 15 * 28 * 19 ์ธ 7980์ด๋ค. ์ด ์ด์์, ์ ๋ต์ผ๋ก ๋์ฌ ์ ์๋ค. ์๋๋ฉด ์ฐ๋ฆฌ๋ ์์ ์ ๋ ฅ๊ฐ์ด ๋ ์ ์๋ ์ต์๊ฐ์ ์ฐพ์ ๊ฑฐ๊ธฐ๋๋ฌธ์
๊ทธ๋์ ๋๋ for๋ฌธ์ 7980๋ฒ ๋๋ ค์ค๋ ์ถฉ๋ถํ๊ฒ ๋ค๊ณ ํ๋จํ๋ค. ๊ทธ๋์ ์์ฑํ ์ฒซ๋ฒ์งธ ํ์ด๋ ์๋์ ๊ฐ๋ค.
// โ ์คํจ์ฝ๋ -> ์ด๋์ ํ๋ ธ๋์ง ์์ธ ์ผ์ด์ค๊ฐ ์๊ฐ์ด ์๋ใ
ใ
private func solution() -> Int {
// ๋์ฌ ์ ์๋ ๊ฐ์ฅ ์์ ์๋๊น, ์ต๊ณ ๋ก ํฌ๊ฒ ๋์ฌ ์ ์๋ ์๋ 7980
let esm = readLine()!.split(separator: " ").map { Int($0)! }
for i in 1...7980 {
if i % 15 == esm[0] || i % 15 == 0 {
if i % 28 == esm[1] || i % 28 == 0 {
if i % 19 == esm[2] || i % 19 == 0 {
return i
}
}
}
}
return 0
}
print(solution())
- esm ์ ๋ ฅ์ ๋ฐ์์ค๋ค.
- 1๋ถํฐ 7980๊น์ง for๋ฌธ์ ๋๋ฉด์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ i ๊ฐ์ ์ฐพ์์ค ๊ฒ์ด๋ค.
- i์์ 15, 28, 19 ๋ก ๋๋ ๋๋จธ์ง๊ฐ ๊ฐ๊ฐ esm[0], esm[1], esm[2]๊ฐ ๋์์ผํ๋ค. (and๋ก ์คฌ์ด๋ ๋๊ฒ ๋ค..ํธํธํธ,,)
- ++) 15, 28, 19 ๊น์ง ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋จธ์ง๊ฐ 0์ธ ๊ฒ๋ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ฉด i๋ฅผ ์ถ๋ ฅํด์ฃผ๊ณ , ์๋๋ฉด ๋๋์๊ฐ์ ๋ค์ i๋ฅผ ํ๋จํ๋ค.
๋ชจ๋ ๊ฒ ์๋ฒฝํ๋ค๊ณ ์๊ฐํ๋๋ฐ,,,
๋ค๋ฒ์ด๋ ๊ณ์ ํ๋ ธ๋ค. (์กฐ๊ฑด์ ์ถ๊ฐํ์ง ์์ ๊ฒ๋ค์ด ์์ด์ ์ถ๊ฐํ๋ค๋ณด๋ ๋ค๋ฒ์ ์ ์ถํจ ใ ใ )
์๋ ๋๋์ฒด๊ฐ 30๋ถ๊ฐ ์์ธ์ฌํญ์ ์๊ฐํด๋ด๋ ์ ํ๋ ธ๋์ง ์๊ฐ์ด ๋์ง ์๋๋ค. ํญ์, ๊ถ๊ธํ๋๊ฒ!!! ๋๋์ฒด ์ฝํ ๋ฅผ ๋ค๋ค ํธ์๊ณ ์์ธ์ฌํญ์ ์ด๋ป๊ฒ ์๊ฐํด๋ด์๋๊ฑฐ์ง? ์ญ์ ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์ด๋ณด๋๊ฒ ๋ต์ธ๊ฑด๊ฐ?
๐ ์ ๋ต์ฝ๋
์ด๊ฒ ์ค์ ์ํ์ด๋ผ๊ณ ์๊ฐํ๊ณ ํ์ด๋ณด์, ๋ง์ธ๋์๊ธฐ ๋๋ฌธ์ ์์ธ์ฌํญ์ด ์ง๊ธ๊น์ง ์๊ฐ์ด ๋์ง ์์ ๊ด๊ณ๋ก ๋ค๋ฅธ ํ์ด๋ก ํ์ด์ผ๊ฒ ๋ค๊ณ ๋ค์งํ๋ค. ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค.
๋ด๊ฐ ์ง๊ธ ๊ตฌํ๋ ค๊ณ ํ๋ year๋ฅผ ๊ตฌํ๋๊ฑด ๊ฒฐ๊ตญ, 15์ ๋๋จธ์ง, 28์ ๋๋จธ์ง, 19์ ๋๋จธ์ง๋ฅผ ์ดํด๋ณด๋๊ฒ ์๋๊ฐ? ๊ทธ๋ผ ์๋ ์ธ๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ค๋ ๋ป์ด๋ค.
(year - e) ๋๋๊ธฐ 15์ ๋๋จธ์ง๋ 0
(year - s) ๋๋๊ธฐ 28์ ๋๋จธ์ง๋ 0
(year - m) ๋๋๊ธฐ 19์ ๋๋จธ์ง๋ 0
๋๋จธ์ง๋ก ๋์จ๋ค๋ esm์ ๊ฐ๊ฐ ๋นผ์คฌ๊ธฐ ๋๋ฌธ์!!
๊ทธ๋ผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ด์ฐจํผ ์ต๋๋ก ๋์๋ดฃ์ 7900๋ฒ์ ๋ ๋์๊ฐ๋๊น, ๋ฌดํ๋ฃจํ๋ก ๋๋ ค์ ๋ด๊ฐ ์ํ๋ year ์ ์ฐพ์์ฃผ์
private func solution() {
let esm = readLine()!.split(separator: " ").map { Int($0)! }
var year = 1
while true {
if (year - esm[0]) % 15 == 0, (year - esm[1]) % 28 == 0, (year - esm[2]) % 19 == 0 {
print(year)
break
}
year += 1
}
}
solution()
๋ง์๋ด ํ ํ ,, ์๊ฐ๋ณด๋ค ๋๋ฌด ๊ฐ๋จํ ๋ฌธ์ ์๋๋ฐ ์๊ฐ์ ์ด๋ ๊ฒ ๋นผ์๊ธฐ๋ค๋ใ ใ ใ ใ ์ญ์ ์์ธ์ฒ๋ฆฌํ๋๊ฒ ๊ฐ์ฅ ํ๋ค์ด,,, ์ด๋ฐ ๋ฌธ์ ๋ ์ฝํ ๋ก ๋์ค๋ฉด ๋งค์ฐ ์ฌ์ด ๋ฌธ์ ๋ก 1๋ฒ์ ๋๋ก ์ฃผ๋ ๋ฌธ์ ๋ก ๋์ฌ ๊ฑฐ๊ฐ์๋ฐ, ์ด๋ฐ๋ฐ์ ์ด๋ ๊ฒ ์๊ฐ์ ์ค๋์ฐ๋ฉด,, ์๋ ๊ฒ๊ฐ๋ค ใ ใ ์์ธ์ฒ๋ฆฌ์ ์ ๊ฒฝ์จ๋ณด์... (๋๋์ฒด ์ด๋ป๊ฒํ์ง ์ด๊ฑด?? ์ผ๋จ ๋ง์ด ํ์ด๋ด์ผํ๋ ,, )
๊ทธ๋๋ ํ์ดํ ๐
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] (Swift) 14500๋ฒ - ํ ํธ๋ก๋ฏธ๋ ธ (์์ ํ์ / DFS๋ก๋ ํ ์ ์๋ค๋๋ฐ?) (0) | 2022.12.30 |
---|---|
[๋ฐฑ์ค] (Swift) 1107๋ฒ - ๋ฆฌ๋ชจ์ปจ (์์ ํ์, ๋๋ฒ์งธ ์ค๋ต๋ ธํธ) (0) | 2022.12.30 |
[๋ฐฑ์ค] (Swift) 3085๋ฒ - ์ฌํ๊ฒ์ (๋๋ฒ์งธ ํ์ด) (0) | 2022.12.28 |
[๋ฐฑ์ค] (Swift) 2309๋ฒ - ์ผ๊ณฑ๋์์ด (1) | 2022.12.28 |
[๋ฐฑ์ค] (Swift) 6588๋ฒ - ๊ณจ๋๋ฐํ์ ์ถ์ธก (1) | 2022.12.27 |