Notice
Recent Posts
Recent Comments
Link
책 읽다가 코딩하다 죽을래
[JAVA] 백준 10250번 : ACM 호텔 문제 풀이 본문
코드는 다음과 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
ArrayList<Integer> input = new ArrayList<Integer>();
BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int H = Integer.parseInt(st.nextToken());
Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());
input.add(H);
input.add(N);
}
for(int i = 0; i < input.size();) {
int H = input.get(i++);
int N = input.get(i++);
int Y = 0, X = 1;
for(int j = 0; j < N; j++) {
Y++;
if(H < Y) {
Y = 1;
X++;
}
}
System.out.println(Y * 100 + X);
}
}
}
먼저 BufferReader를 통해 H,W,N 값을 받아오는데 여기서 중요한 것은 W값은 굳이 받아올 필요가 없다.
왜냐하면 쓸데없는 데이터이기 때문이다. 어차피 H개의 층수와 각 층 마다 w개의 방이 정해져있으면 H x W 의 값보다 더 높은 N의 값은 고려하지 않기 때문이다. 즉 5개의 층수와 각 층마다 5개의 방이 있다치면 N은 25보다 더 높은 값이 입력으로 들어가는 경우는 고려하지 않는다는 뜻이므로 굳이 각 층마다 w개인지는 알 필요가 없다.
그래서 제 코드를 보시면 W값 자체는 저장하는 코드는 없다.
즉 H와 N의 수만 저장을 하고 YYXX호에서 YY를 정하는 변수 Y와 XX를 정하는 변수 X만 정해주면 이 문제는 쉽게 해결할 수 있을 것이다.
'코딩 > 알고리즘문제' 카테고리의 다른 글
백준 파이썬 1874번 : 스택 수열 (0) | 2021.08.15 |
---|---|
[JAVA] 백준 2292번 : 벌집 문제 풀이 (0) | 2021.01.08 |
백준 1110번 더하기 사이클 문제 해답 (0) | 2020.10.26 |
백준 11502 세 개의 소수 문제 해답 (0) | 2020.03.19 |
백준 1978번 소수 찾기 문제 해답 (0) | 2020.02.28 |