https://www.acmicpc.net/problem/23971
์ฃผ์ด์ง H(ํ), W(์ด), N(์ธ๋ก), M(๊ฐ๋ก) ์ ํตํด ์ต๋ ๋ช ๋ช ์์ฉ๊ฐ๋ฅํ์ง ํธ๋ ๋ฌธ์ ๋ค!
์ฒ์์๋.. '์ฃผ์ด์ง H์ W๋ฅผ ํตํด ๋ฐฐ์ด์ ์ ์ธํ๊ณ ๋ฐ๋ณต๋ฌธ์ ํตํด ํ๊น?' ํ์ง๋ง ๋๋ฌด ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ธ๊ฑฐ ๊ฐ์ ๊ณ ๋ฏผ์ ํด๋ณด๋
ํ ํ๊ณผ ํ ์ด์ ๋ค์ด๊ฐ๋ ์ฌ๋์ ์๋ง ์๊ณ ๊ณฑํ๋ฉด ๋์ค๊ฒ ๋ค!
์ถ์ด ๊ณ์ฐ์ ํด๋ณด์๋ค!
๊ธฐ์ค ๊ทธ๋๋ก H์ W๊ฐ 5,4 ์ผ ๋ N๊ณผ M์ ์กฐ์ ํด๋ณด๋ฉด
5์นธ์ 1๋ช ๊ฐ๊ฒฉ์ผ ๋ (3๋ช )
O X O X O
5/(1+1) = 2.5 (์ฌ๋ฆผ)-> 3
5์นธ์ 2๋ช ๊ฐ๊ฒฉ์ผ ๋ (2๋ช )
O X X O X
5/(2+1) = 1.66 (์ฌ๋ฆผ)-> 2
5์นธ์ 3๋ช ๊ฐ๊ฒฉ์ผ ๋ (2๋ช )
O X X X O
5/(3+1) = 1.25 (์ฌ๋ฆผ)-> 2
5์นธ์ 4๋ช ๊ฐ๊ฒฉ์ผ ๋ (1๋ช )
O X X X X
5/(4+1) = 1 (์ฌ๋ฆผ)-> 1 (1.0 ์ ์ฌ๋ฆผํด๋ 1)
์ฆ, ํ ์ด๋ธ์ ๊ฐ์ / (๊ฐ๊ฒฉ+1) ์ ์ฌ๋ฆผ ํ๋ฉด ๋๋ค
import Foundation
let input = readLine()!.split(separator: " ").map{Double($0)!}
let row = ceil(input[0] / (input[2]+1))
let col = ceil(input[1] / (input[3]+1))
print(Int(row * col))
์ฌ๊ธฐ์ ์ค์ํ๊ฑด ceil
๋ฉ์๋์ด๋ค.
ํด๋น ๋ฉ์๋๋ Foundation
์ import
ํด์ฃผ์ด์ผ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ
์์๋ฅผ ์ฌ๋ ค ์ ์์ +1 ์ ํด์ฃผ์ง๋ง ์์๋ถ๋ถ์ด 0 ์ผ๋๋ ์ฌ๋ฆฌ์ง ์๋๋ค!
์ฐธ๊ณ ๋ก ๋ฐ์ฌ๋ฆผ์ round()
, ๋ด๋ฆผ์ floor()
์ด๋ค!
๋ค์๊ณผ ๊ฐ์ด Float
, Double
์ ํ๋ผ๋ฏธํฐ ์ ํ์ผ๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์
๋ ฅ๋ฐ์ Int
๋ฅผ Double
์ผ๋ก ๋ณํํด์ ์ฌ์ฉํ๋ค!
๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ๋๋ ์ ์์ด๊ธฐ ๋๋ฌธ์ ๋ค์ Int
๋ก ๋ฐํ!
์ด๋ฒ์๋ ๋๊ผ์ง๋ง.. ์ ๋ฐ.. ๋ฌธ์ ๊ทธ๋๋ก ์ฝ๋๋ฅผ ์ ์ง ๋ง์!
๋ถ๋ช .. ์ด๋ค ๊ณต์์ด ์์๊บผ์ผ...