첫번째 제출한 답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
sc.nextLine();
for (int i = 0; i < t; i++) {
String input = sc.nextLine();
String result = "";
//층수
int h = Integer.parseInt(input.split(" ")[0]);
//방수
int w = Integer.parseInt(input.split(" ")[1]);
//몇번째 손님인지
int n = Integer.parseInt(input.split(" ")[2]);
if(n%h==0) {
result += String.valueOf(h);
}else {
result += String.valueOf(n%h);
}
if(Math.ceil((double)n/h)>=10) {
result += (int)Math.ceil((double)n/h);
} else {
result += "0"+ (int)Math.ceil((double)n/h);
}
System.out.println(result);
}
}
}
접근방식
->
n%h는 손님이 배정될 방번호의 층수(YY)를 의미 n%h==0일때는 따로 처리해준다
ex) n = 12 h = 10 일때 n%h 는 2이다 -> 손님은 2층에 배정
ex) n = 20 h = 10 일때 손님은 10층에 배정되어야 하지만 n%h는 0 이기 때문에 이 경우에는 h를 배정될 방의층수로 넣어준다
n/h 를 올림 한값( Math.ceil((double)n/h) )은 손님이 배정될 방번호의 호수(XX)를 의미한다 두자릿수일때는 바로 넣어주고 한자리수일때는 앞에 0을 붙혀서 넣어준다
ex) n = 12 h = 10 일때 Math.ceil((double)n/h)는 2.0이다 -> 손님은 02호에 배정된다.
결과->정답