반응형
문제
풀이
package step8;
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{
//ACM 호텔
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());//테스트 케이스 개수
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int h, n;//호텔의 층 수, 몇 번째 손님인지
for(int i = 0; i < t; i++) {
st = new StringTokenizer(br.readLine()," ");
h = Integer.parseInt(st.nextToken());
st.nextToken();//w는 입력받지만 사용하지 않음.
n = Integer.parseInt(st.nextToken());
if(n % h == 0) {
//꼭대기층인 경우
sb.append((h * 100) + (n / h)).append("\n");
}else {
sb.append(((n % h) * 100) + (n / h + 1)).append("\n");
}
}
System.out.println(sb);
br.close();
}
}
팁
- 방 배정 우선 순위
1. 엘레베이터로부터 가까운 거리 배정(인접한 두 방 사이의 거리: 1)
2. 거리가 같은 경우 낮은 층수 배정
- n % h가 0인 경우 고려하기
ex) h = 6, w = 12, n = 6인 경우
=> 601호에 배정되어야 한다.
하지만, 기존 로직대로라면 n % h가 0이고, n / h +1이 2가 되어버린다.
따라서 n % h가 0인 경우를 고려해야한다.
출처
반응형
'알고리즘 > Java' 카테고리의 다른 글
[CodeUp 기초 100제 JAVA] 기초-입출력 1010-1013 (0) | 2021.09.17 |
---|---|
[CodeUp 기초 100제 JAVA] 기초-출력 1001-1008 (0) | 2021.09.16 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 2869.달팽이는 올라가고 싶다 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 1193.분수찾기 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 2292.벌집 (Java8) (0) | 2021.09.13 |