경험의 기록

문제 : https://www.acmicpc.net/problem/10250

 

10250번: ACM 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수

www.acmicpc.net

 

 

 

풀이

오답

// [백준] 10250. ACM 호텔 (Java)
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 {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(in.readLine()); 
		for (int i = 0; i<t; i++) {
			StringTokenizer st = new StringTokenizer(in.readLine());
			int h = Integer.parseInt(st.nextToken());
			int w = Integer.parseInt(st.nextToken());
			int n = Integer.parseInt(st.nextToken());
			
			int a = n%h;
			int b = (n/h)+1;
			String tmp = a + "0" + b;
			System.out.println(Integer.parseInt(tmp));
		}
		in.close();
	}
}

처음에는 단순히 층 수는 n에서 h를 나눈 나머지,

호 수는 n/h + 1 앞에 0을 붙인 형태로 생각하여 위와 같이 코드를 짰다.

예제와 같이

 

6 12 10 

인 경우엔 '402' 호를 출력하지만

 

5 5 5

인 경우 위 코드에서 '2' 를 출력하게 된다. ( 정답은 '501' 가 출력되어야 함)

 

정답

// [백준] 10250. ACM 호텔 (Java)
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 {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(in.readLine()); 
		for (int i = 0; i<t; i++) {
			StringTokenizer st = new StringTokenizer(in.readLine());
			int h = Integer.parseInt(st.nextToken());
			int w = Integer.parseInt(st.nextToken());
			int n = Integer.parseInt(st.nextToken());
			
			int a = n%h;
			int b = (n/h)+1;
			if(a==0) {
				a = h;
				b -= 1;
			}
			int tmp = a*100 + b;
			System.out.println(tmp);
		}
		in.close();
	}
}

그래서 나머지가 0인 경우를 생각해보면,

방의 층수는 h층이라는 것을 알 수 있고 호수는 다음 호수로 넘어가지 않으므로 +1을 해주지 않아야 한다.

따라서 그 경우만 예외처리 하여 출력해주면 된다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading