day5 백준 10250번 : ACM 호텔 [Java]
문제출처
https://www.acmicpc.net/problem/10250
import java.util.Scanner;
public class day005_Q10250 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int[] H = new int[T];
int[] W = new int[T];
int[] N = new int[T];
for(int i = 0; i < T; i++) {
H[i] = sc.nextInt();
W[i] = sc.nextInt();
N[i] = sc.nextInt();
}
for(int i = 0; i < T; i++) {
int room;
int floor = N[i] % H[i];
int num = (N[i] / H[i]) + 1;
room = floor * 100 + num;
System.out.println(room);
}
sc.close();
}
}
오늘도 어김없이 틀린 코드로 시작한다.
이 코드의 문제는 데이터가 2 10 2와 같이 N이 H로 나누어 떨어지는 경우에 나머지가 0이되어서 floor가 없어지는 문제가 발생했다.
import java.util.Scanner;
public class day005_Q10250 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int[] H = new int[T];
int[] W = new int[T];
int[] N = new int[T];
for(int i = 0; i < T; i++) {
H[i] = sc.nextInt();
W[i] = sc.nextInt();
N[i] = sc.nextInt();
}
for(int i = 0; i < T; i++) {
int room, floor, num;
if(N[i] % H[i] == 0) {
floor = H[i];
num = N[i] / H[i];
}
else {
floor = N[i] % H[i];
num = (N[i] / H[i]) + 1;
}
room = floor * 100 + num;
System.out.println(room);
}
sc.close();
}
}
그래서 나누어 떨어지는 경우와 아닌걸로 나눠서 풀었고 맞았다.
for문 굳이 두번 안쓰고 배열도 안쓰고도 풀수있을거 같아서 다시 해봤다.
import java.util.Scanner;
public class day005_Q10250 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int H, W, N;
for(int i = 0; i < T; i++) {
H = sc.nextInt();
W = sc.nextInt();
N = sc.nextInt();
int room, floor, num;
if(N % H == 0) {
floor = H;
num = N / H;
}
else {
floor = N % H;
num = (N / H) + 1;
}
room = floor * 100 + num;
System.out.println(room);
}
sc.close();
}
}
출력문 자체만 보면되니까 이것도 틀린건 아니고 맞았다.
'문제풀이 > 코딩테스트' 카테고리의 다른 글
day7 백준 2775번 : 부녀회장이 될테야 [Java] (0) | 2020.09.03 |
---|---|
day6 백준 1011번 : Fly me to the Alpha Centauri [Java] (0) | 2020.09.03 |
day4 백준 2869번 : 달팽이는 올라가고 싶다 [Java] (0) | 2020.08.31 |
day3 백준 11720번 : 숫자의 합 [Java] (0) | 2020.08.27 |
day2 백준 2839번 : 설탕 배달 [Java] (0) | 2020.08.27 |