Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Baekjoon

[๋ฐฑ์ค€] (Swift) 1476๋ฒˆ - ๋‚ ์งœ๊ณ„์‚ฐ

๊ฐ์ž ๐Ÿฅ” 2022. 12. 29. 16:05
๋ฐ˜์‘ํ˜•

 

๐ŸŸ  ๋ฌธ์ œ

https://www.acmicpc.net/problem/1476

 

1476๋ฒˆ: ๋‚ ์งœ ๊ณ„์‚ฐ

์ค€๊ทœ๊ฐ€ ์‚ฌ๋Š” ๋‚˜๋ผ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ๋„์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ์ด์šฉํ•œ๋‹ค. ์ค€๊ทœ๊ฐ€ ์‚ฌ๋Š” ๋‚˜๋ผ์—์„œ๋Š” ์ˆ˜ 3๊ฐœ๋ฅผ ์ด์šฉํ•ด์„œ ์—ฐ๋„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ๊ฐ์˜ ์ˆ˜๋Š” ์ง€๊ตฌ, ํƒœ์–‘, ๊ทธ๋ฆฌ๊ณ  ๋‹ฌ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ง€๊ตฌ๋ฅผ ๋‚˜ํƒ€

www.acmicpc.net

๐ŸŸ  ์ฒซ๋ฒˆ์งธ ํ’€์ด - ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค

๋ณด์ž๋งˆ์ž, ๋‚˜๋ˆ ์„œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€๋ฆฌ๊ฒ ๋‹ค! ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•ด๋‚ธ๊ฒŒ, 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())
  1. esm ์ž…๋ ฅ์„ ๋ฐ›์•„์ค€๋‹ค.
  2. 1๋ถ€ํ„ฐ 7980๊นŒ์ง€ for๋ฌธ์„ ๋Œ๋ฉด์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” i ๊ฐ’์„ ์ฐพ์•„์ค„ ๊ฒƒ์ด๋‹ค.
  3. i์—์„œ 15, 28, 19 ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ ๊ฐ๊ฐ esm[0], esm[1], esm[2]๊ฐ€ ๋‚˜์™€์•ผํ•œ๋‹ค. (and๋กœ ์คฌ์–ด๋„ ๋๊ฒ ๋„ค..ํ˜ธํ˜ธํ˜ธ,,)
  4. ++) 15, 28, 19 ๊นŒ์ง€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฒƒ๋„ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค.
  5. ๊ทธ๋ฆฌ๊ณ  ์ด ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฉด 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๋ฒˆ์ •๋„๋กœ ์ฃผ๋Š” ๋ฌธ์ œ๋กœ ๋‚˜์˜ฌ ๊ฑฐ๊ฐ™์€๋ฐ, ์ด๋Ÿฐ๋ฐ์„œ ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ„์„ ์˜ค๋ž˜์“ฐ๋ฉด,, ์•ˆ๋ ๊ฒƒ๊ฐ™๋‹ค ใ… ใ…  ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ์‹ ๊ฒฝ์จ๋ณด์ž... (๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒํ•˜์ง€ ์ด๊ฑด?? ์ผ๋‹จ ๋งŽ์ด ํ’€์–ด๋ด์•ผํ•˜๋‚˜ ,, )

๊ทธ๋ž˜๋„ ํ™”์ดํŒ… ๐Ÿ€

๋ฐ˜์‘ํ˜•