public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int testCnt = sc.nextInt();
for (int i = 0; i < testCnt; i++) {
int floor = sc.nextInt(); // 층수 입력
int room = sc.nextInt(); // 방 수 입력
int customer = sc.nextInt(); // 손님 순서 입력
int cFloor = customer % floor;
int cRoom = customer / floor;
System.out.println(cFloor);
System.out.println(cRoom);
//손님이 각 층의 마지막 손님일 때
if(cFloor == 0){
cFloor = floor;
}else {
cRoom += 1;
}
System.out.printf("%d%02d%n", cFloor, cRoom);
}
}
}
풀이
6층이고 12개의 방이 있을 때, 손님이 10번째로 들어온다.
손님 순서 % 층 = 하면 채워지고 남은 나머지가 손님의 층수다.
ex) 10 % 6 = 4
손님 순서 / 층 = 하면 손님의 방번호 앞자리를 추출할 수 있다.
ex) 10 / 6 = 1.66666….
손님이 층의 마지막 번호라면 층수가 0이 되므로 입력받은 층을 넣어줘야한다.
다른 풀이
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++)
{
st = new StringTokenizer(br.readLine());
int h = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
if (n % h == 0)
{
System.out.println((h * 100) + (n / h));
}
else
{
System.out.println((n % h * 100) + (n / h + 1));
}
}
br.close();
계산을 바로 표시해주는 방법.
층수 * 100하면 400이 되므로 + 룸넘버한다..
'💡 Algorithm > 백준' 카테고리의 다른 글
[JAVA] 백준 #1157 - 단어 공부 (0) | 2023.10.18 |
---|---|
[JAVA] 백준 #2920 - 음계 (0) | 2023.10.17 |
[JAVA] 백준 #11720 - 숫자의 합 (0) | 2020.08.21 |
[JAVA] 백준 #10809 - 알파벳 찾기 (0) | 2020.08.21 |
[JAVA] 백준 #2675 - 문자열 반복 (0) | 2020.08.21 |
[JAVA ] 백준 #1157- 단어 공부 (0) | 2020.08.20 |