반응형
뭔가 내용이 길지만 찬찬히 읽으면 그렇게 복잡하진 않다.
h의 층과 w의 호수인 호텔에서 n번째 손님은 어느방에 들어갈 지 출력하면 된다.
조건을 보자면 먼저 엘레베이터와 가까운 방을 먼저 선호하고 그 다음엔 저층을 선호한다. (난 고층이 좋은데)
즉 101호 201호 301호 순으로 먼저 방에 들어가게 되고 102호는 201호 301호 401호 즉 1호보다 엘레베이터와 멀기 때문에 우선순위가 낮다. 먼저 1층부터 101호~H01호 먼저 다 채우고 102호~H02호 이렇게 채우면 된다.
간단하쥬?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.Scanner;
//baekjoon_10250_ACM호텔
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int test = sc.nextInt();
for(int i=0; i<test; i++) {
int H, W, N;
H = sc.nextInt(); //층 수
W = sc.nextInt(); //방 호수
N = sc.nextInt(); //n번째로 들어온 손님
//x는 호수 판별
int x = (N/H) + 1;
int y = N % H;
if(y == 0) {
x = N/H;
y = H;
}
System.out.println(y*100+x);
}
}
}
|
cs |
17행 : x는 몇 호 인지 계산한다. 예를 들어 한 층의 호수가 5개 있고 층 수는 3층인 건물이라 쳤을 때
5번째 손님은 101, 201, 301호로 1호는 다 차고 202, 302로 호 수는 2인 것을 확인할 수 있다.
즉 N / H로 (사람 수 / 층 수)(5 / 3) 사람이 한 호를 다 채우고 다음 호로 넘어간 것이 몫이 1을 의미한 것이므로 +1을 더해 주면 된다.
층 수보다 사람 수가 더 적으면 몫이 0이고 1호에 다 차므로 +1을 해주면 역시 수식이 맞게 된다.
18행 : y는 몇 층에 n번째 사람이 머무는지 확인하게 된다. 위에서 한 수식을 그대로 쓰면 된다.
N % H(사람 수 % 층 수) 5 % 3 = 2 나머지를 확인하면 층수를 확인 할 수 있다. (2층)
층과 호수를 알았으니 출력하면 된다. (24행)
음 결과적으로 W는 사용하지도 않았다... ㅎㅎ 그래도 뭐 결과만 나오면 그만이니
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 2839번 자바 설탕 배달 [수학 1] (0) | 2021.01.07 |
---|---|
백준 2775번 java 부녀회장이 될테야~~! <수학1> (2) | 2020.12.23 |
백준 2869번 java 달팽이는 올라가고 싶다 (수학1) (0) | 2020.12.01 |
백준 1193번 java 자바 분수찾기 [수학1] (2) | 2020.11.28 |
백준 2292번 java 자바 벌집 [수학1] (0) | 2020.10.25 |
댓글