// [백준] 10250. ACM 호텔 (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(in.readLine());
for (int i = 0; i<t; i++) {
StringTokenizer st = new StringTokenizer(in.readLine());
int h = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int a = n%h;
int b = (n/h)+1;
String tmp = a + "0" + b;
System.out.println(Integer.parseInt(tmp));
}
in.close();
}
}
처음에는 단순히 층 수는 n에서 h를 나눈 나머지,
호 수는 n/h + 1 앞에 0을 붙인 형태로 생각하여 위와 같이 코드를 짰다.
예제와 같이
6 12 10
인 경우엔 '402' 호를 출력하지만
5 5 5
인 경우 위 코드에서 '2' 를 출력하게 된다. ( 정답은 '501' 가 출력되어야 함)
정답
// [백준] 10250. ACM 호텔 (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(in.readLine());
for (int i = 0; i<t; i++) {
StringTokenizer st = new StringTokenizer(in.readLine());
int h = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int a = n%h;
int b = (n/h)+1;
if(a==0) {
a = h;
b -= 1;
}
int tmp = a*100 + b;
System.out.println(tmp);
}
in.close();
}
}
그래서 나머지가 0인 경우를 생각해보면,
방의 층수는 h층이라는 것을 알 수 있고 호수는 다음 호수로 넘어가지 않으므로 +1을 해주지 않아야 한다.