[Algorithm] 10250 ACM ํธํ
๐ฅ ๋ฌธ์
ACM ํธํ ๋งค๋์ ์ง์ฐ๋ ์๋์ด ๋์ฐฉํ๋ ๋๋ก ๋น ๋ฐฉ์ ๋ฐฐ์ ํ๊ณ ์๋ค. ๊ณ ๊ฐ ์ค๋ฌธ์กฐ์ฌ์ ๋ฐ๋ฅด๋ฉด ์๋๋ค์ ํธํ ์ ๋ฌธ์ผ๋ก๋ถํฐ ๊ฑธ์ด์ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ์ ์๋ ๋ฐฉ์ ์ ํธํ๋ค๊ณ ํ๋ค. ์ฌ๋ฌ๋ถ์ ์ง์ฐ๋ฅผ ๋์ ์ค ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ ํ๋ค. ์ฆ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ ๋๋ก ํธํ ์ ๋ฌธ์ผ๋ก๋ถํฐ ๊ฑท๋ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง๋๋ก ๋ฐฉ์ ๋ฐฐ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ ํ๋ค.
๐ค ํ์ด ๋ฐฉ๋ฒ
- ๋ณ์
floor: Int
: ๋ฐฐ์ ๋ ์ธตroom: String
: ๋ฐฐ์ ๋ ๋ฒํธ๋ฅผ ์คํธ๋ง ํ์์ผ๋ก ๋ณํํ ๊ฐ. 1ํธ์ ๊ฒฝ์ฐ 01ํธ๋ก ํ์ํ๊ธฐ ์ํจtmpRoom: Int
: ๋ฐฐ์ ๋ ๋ฒํธ
floor = N % H
- N์ H๋ก ๋๋ ๋๋จธ์ง๊ฐ ๋ฐฐ์ ๋ ์ธต์ด ๋๋ค.
- 5์ธต ๊ฑด๋ฌผ์ 7๋ฒ์งธ ์ฌ๋ -> 2์ธต
tmpRoom = N / H
- N์ H๋ก ๋๋ ๋ชซ์ด ๋ฐฐ์ ๋ ๋ฒํธ๊ฐ ๋๋ค.
- 5์ธต ๊ฑด๋ฌผ์ 7๋ฒ์งธ ์ฌ๋ -> 2๋ฒ
if floor == 0 { floor = H } else { tmpRoom += 1 }
- floor๊ฐ 0์ผ ๊ฒฝ์ฐ ๊ฑด๋ฌผ์ ์ต์์ธต์ด๋ค.
- 5์ธต ๊ฑด๋ฌผ์ 10๋ฒ์งธ ์ฌ๋์ผ ๊ฒฝ์ฐ floor๋ 0์ด๋ค. -> ์ด๊ฒฝ์ฐ ์ต์์ธต์ธ 5์ธต์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
- 0์ด ์๋ ๊ฒฝ์ฐ ๋ฒํธ๋ฅผ 1 ์ฆ๊ฐ์์ผ์ค๋ค.
- 5์ธต ๊ฑด๋ฌผ์ 10๋ฒ์งธ ์ฌ๋ -> 2ํธ
- 5์ธต ๊ฑด๋ฌผ์ 9๋ฒ์งธ ์ฌ๋ -> 1ํธ -> 2ํธ๋ก ๋ฐ๊พธ์ด์ค๋ค.
if tmpRoom == tmpRoom % 10 { room = "0\(tmpRoom)" } else { room = "\(tmpRoom)" }
- ๋ฐฐ์ ๋ ๋ฒํธ๊ฐ 5ํธ์ ๊ฐ์ด 1์๋ฆฌ ์๋ผ๋ฉด "05ํธ๋ก ๋ฐ๊พธ์ด์ค๋ค.
๐ฉ๐ป๐ป Swift Code
import Foundation
let T = Int(readLine() ?? "") ?? 0
if 0 < T {
for _ in 0..<T {
let line = (readLine() ?? "").split(separator: " ").map{Int(String($0)) ?? 0}
let H = line[0]
let W = line[1]
let N = line[2]
if 1 <= H && W <= 99 && 1 <= N && N <= H * W {
var floor = N % H
var room = ""
var tmpRoom = N / H
if floor == 0 {
floor = H
} else {
tmpRoom += 1
}
if tmpRoom == tmpRoom % 10 {
room = "0\(tmpRoom)"
} else {
room = "\(tmpRoom)"
}
print("\(floor)\(room)")
}
}
}
10250๋ฒ: ACM ํธํ
ํ๋ก๊ทธ๋จ์ ํ์ค ์ ๋ ฅ์์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค. ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ์ T ๊ฐ์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ T ๋ ์ ๋ ฅ์ ๋งจ ์ฒซ ์ค์ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ๋ฐ์ดํฐ๋ ํ ํ์ผ๋ก์ H, W, N, ์ธ ์ ์
www.acmicpc.net