๋ฐฑ์ค€ - ๋ณ‘๋“  ๋‚˜์ดํŠธ(Swift)

2022. 10. 31. 14:06ใ†Algorithm

๋ฐฑ์ค€ - ๋ณ‘๋“  ๋‚˜์ดํŠธ(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

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

 

1783๋ฒˆ: ๋ณ‘๋“  ๋‚˜์ดํŠธ

์ฒซ์งธ ์ค„์— ์ฒด์ŠคํŒ์˜ ์„ธ๋กœ ๊ธธ์ด N์™€ ๊ฐ€๋กœ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 2,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

 

 ๋‚˜์˜ ํ’€์ด

 

๋ฌธ์ œ์—์„œ n๊ณผ m์˜ ๋ฒ”์œ„๊ฐ€ 2์–ต๊นŒ์ง€์ธ ๊ฒƒ์„ ๋ณด๊ณ , ์ด๋™๋ฐฉ๋ฒ•์ด 4๊ฐ€์ง€ ์ด์ƒ์ธ ๊ฒฝ์šฐ๋Š” ํ•œ๋ฒˆ ์ด์ƒ์”ฉ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์กฐ๊ฑด๋ณ„๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ง๊ฐํ–ˆ๋‹ค.

 

์ฆ‰ 4๊ฐ€์ง€ ์ดํ•˜์˜ ๊ฒฝ์šฐ์™€ 4๊ฐ€์ง€ ์ด์ƒ์˜ ๊ฒฝ์šฐ๋ฅผ ๋”ฐ์ ธ๋ด์•ผํ•œ๋‹ค.

 

์ผ๋‹จ N์ด 1์ผ๋•Œ(ํ–‰์ด 1)๋Š” ์œ„๋‚˜ ์•„๋ž˜๋กœ ๊ฐˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์œ„์น˜์ธ 1์นธ์ด ์ตœ๋Œ€๊ฐ’์ด๋‹ค.

 

N์ด 2์ผ๋•Œ๋Š” ์œ„๋กœํ•œ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘์นธ๊ณผ ์•„๋ž˜๋กœํ•œ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘์นธ๋ฐ–์— ํ•  ์ˆ˜์—†๋‹ค. ๊ทธ๋ ‡๊ธฐ์— 4๊ฐ€์ง€ ์ด์ƒ์ธ ๊ฒฝ์šฐ๋Š” ํ•œ ๋ฒˆ ์ด์ƒ์”ฉ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€๋กœ ๋งŽ์ด ์น ํ•œ ๊ฐœ์ˆ˜๋Š” 3๋ฒˆ์ด๋™ํ•œ ๊ฒฐ๊ณผ์ธ 4์นธ์ผ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. (m+1)/2๊ฐ€ ๋‚˜์˜จ ์ด์œ ๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘์นธ์”ฉ ์ด๋™ํ• ์ˆ˜๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

N์ด 3์ด์ƒ์ผ๋•Œ๋Š” M์ด 6๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€๊ฒฝ์šฐ์™€ ํฐ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ ๋”ฐ์ ธ๋ด์•ผํ•œ๋‹ค. 

๋จผ์ € M์ด 7์ผ๋•Œ ๋”ฑ 4๊ฐ€์ง€์ด๋™๊ฒฝ๋กœ๋ฅผ ๋งŒ์กฑ์‹œํ‚จ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. (์ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ 6๋ฒˆ๊ฐ€๊ธฐ๋•Œ๋ฌธ). ๊ทธ๋ฆฌ๊ณ  ์ „๋ถ€ ์‚ฌ์šฉํ–ˆ์œผ๋‹ˆ ๊ฐ€์žฅ ๋งŽ์€ ๊ณณ์„ ๋“ค๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„๋กœ๋‘์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ์นธ๊ณผ ์•„๋ž˜๋กœ๋‘์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ์นธ์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† +1์”ฉํ•˜๋ฉด๋œ๋‹ค. ๊ทธ๋ž˜์„œ M-2๊ฐ€ ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ -2๊ฐ€ ๋˜๋Š” ์ด์œ ๋Š” 4๊ฐ€์ง€ ์ด๋™๊ฒฝ๋กœ๋ฅผ ๊ฒฝ์šฐ์˜์ˆ˜์— ๋„ฃ์„๋•Œ ์œ„๋กœํ•œ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘์นธ, ์•„๋ž˜๋กœํ•œ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘์นธ ๋•Œ๋ฌธ์— ์ด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์—์„œ ๊ฐ๊ฐ ํ•œ์นธ์”ฉ ๋นผ๋Š” ๊ฒƒ์ด๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  M์ด 6๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€๊ฒฝ์šฐ์—๋Š” 4๊ฐ€์ง€ ์ด๋™๊ฒฝ๋กœ๋ฅผ ๋‹ค ๋งŒ์กฑ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— 3๊ฐ€์ง€ ์ด๋™๊ฒฝ๋กœ๋ฅผ ๋งŒ์กฑ์‹œํ‚จ ์ƒํƒœ์ธ 4๊ฐœ์˜ ์ฒด์ŠคํŒ์— ๋„๋‹ฌํ•œ ๊ฒŒ ์ตœ๋Œ€๊ฐ’์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  m๊ณผ ํ•จ๊ป˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋˜๋Š”๋ฐ m์ž์ฒด๋ฅผ ๋„ฃ์€ ์ด์œ ๋Š” ์œ„๋กœ ๋‘์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ์นธ, ์•„๋ž˜๋กœ๋‘์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ์นธ์ด ์ตœ๋Œ€๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

import Foundation

let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
let n = input[0], m = input[1]

if n == 1 {
    print("1")
} else if n == 2 {
    print(min(4, (m+1)/2))
} else {
    if m > 6 {
        print(m-2)
    } else {
        print(min(4, m))
    }
}