[백준 BOJ] 10250번 ACM 호텔 (C++/cpp)

2022. 2. 5. 17:34PS (Program Solving)/BOJ (백준)

문제 설명

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

 

10250번: ACM 호텔

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

www.acmicpc.net

백준 BOJ 10250번 ACM 호텔 문제 사진
백준 BOJ 10250번 ACM 호텔 문제 사진2

 

접근 방법 - 수학적 사고력을 필요로 하는 문제

백준의 10250번 문제는 수학적 사고력을 이용하여 문제를 해결해야 하는 문제이다.

해당 문제는, 손님이 오는 순서에 따라 해당 손님을 배치할 방 번호를 출력해야 하는 문제이다.

필자는 호텔의 최상위 층에 배치되는 경우와 아닌 경우, 이렇게 2가지로 나누어 연산을 취해보았다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 테스트 케이스의 수(t)를 입력받는다.

 

2) 호텔의 너비(w)와 높이(h), 손님이 들어오는 순서(n)를 차례대로 입력받는다.

 

3) 정답을 저장할 변수 num을 0으로 초기화하고 선언한다.

 

4) 경우에 따라 아래의 연산을 취한다. 

- 최상위 층에 배치되는 경우(n%h==0), 제일 위층(100*h)에 있어 엘리베이터에서 가장 가까운 방에 배치한다.

- 최상위 층이 아닌 경우, 적절할 층수(100*(n%h))와 호수(n/h+1)인 방에 배치한다.

 

5) 최종적으로 연산된 num을 출력한다.

 

6) 모든 테스트 케이스가 2) ~ 5) 과정을 끝냈다면, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
using namespace std;

//백준 10250번 코드
int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		int h, w, n;
		cin >> h >> w >> n;

		int num = 0;
		if (n % h == 0) { num += 100 * h + n / h; }
		else { num += 100 * (n % h) + n / h + 1; }
		cout << num << endl;
	}
}

 

제출 결과

백준 BOJ 10250번 ACM 호텔 문제 C++ 제출 결과

(2022.01.28 백준 10250번 문제 제출 결과)

반응형