(Swift) 백준 10250 ACM 호텔

SteadySlower·2022년 5월 17일
0

Coding Test

목록 보기
34/305

10250번: ACM 호텔

let T = Int(readLine()!)!

(0..<T).forEach { _ in
    let inputs = readLine()!.split(separator: " ").map { Int(String($0))! }
    let H = inputs[0]
    let _ = inputs[1]
    let n = inputs[2]
    let h = (n - 1) % H + 1
    let w = (n - 1) / H + 1
    let wString = w < 10 ? "0\(w)" : "\(w)"
    print("\(h)\(wString)")
}
  1. 나머지와 묷을 이용해서 호수를 구하면 됩니다.
  2. 층수를 구할 때는 나머지를 사용합니다.
    1. 하지만 그냥 n을 H로 나누는 경우 나머지가 0일 때 H층에 배정되는 것을 계산하기 쉽지 않습니다.
    2. 이런 경우에 (n - 1)에서 H를 나눈 다음에 + 1을 하는 방법으로 나머지의 범위를 0 ~ (H - 1)에서 1 ~ H로 바꾸어 줄 수 있습니다.
  3. 호수를 구할 때는 몫을 사용합니다.
    1. 마찬가지로 그냥 n을 H로 나누는 경우 몫이 0인 경우에 W호에 배치되는 것을 계산하기 쉽지 않습니다.
    2. 똑같이 (n - 1)을 H로 나눈 몫에 + 1을 사용하면 몫의 범위를 0 ~ (W - 1)에서 1 ~ W로 바꿀 수 있습니다.
  4. 마지막으로 w는 그대로 사용하면 안되고 한 자리수인 경우에는 “0w”의 형식으로 바꾸어야 합니다.
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글