본문 바로가기

algorithm

백준 10250번 ACM 호텔

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

 

아이디어:

1. H, W 준다고 2차원 배열 생각 X. W는 아예 쓰지도 않는 숫자

2. 예제를 잘 보면 호수 앞자리는  N % H, 호수 뒷자리는 (N / H) + 1

3. 반례를 생각해보면 6 12 12가 주어졌을 때 003호가 아닌 602호가 배정되어야한다.

4. N % H = 0 인 경우와 아닌 경우를 생각한다.

5. 0인 경우 앞자리는 H, 뒷자리는 N / H

6. 0이 아닌 경우 앞자리는 N % H, 뒷자리는 (N / H) + 1

7. string의 to_string()과 stoi()를 활용해서 int 와 string간의 형변환

8. 뒷자리가 10을 넘지 않으면 중간에 0을 추가하고 10을 넘으면 그대로 출력

 

// 10250

#include <iostream>
#include <string>

using namespace std;

int main() {

	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int T, H, W, N;
	string first;
	string end;
	int result;

	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> H >> W >> N;

		if (N % H == 0) {
			first = to_string(H);
			end = to_string(N / H);
		}
		else {
			first = to_string(N % H);
			end = to_string((N / H) + 1);
		}


		if (stoi(end) < 10) {
			cout << first << "0" << end << "\n";
		}
		else {
			cout << first << end << "\n";
		}
	}

	return 0;
}

'algorithm' 카테고리의 다른 글

백준 2920번 음계  (0) 2024.11.03
백준 2577번 숫자의 개수  (0) 2024.11.03
백준 31403번 A+B-C  (0) 2024.10.27
백준 2475번 검증수  (0) 2024.10.27
백준 15964번 이상한 기호  (0) 2024.10.27