Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- SASS
- 기본 수학 2단계
- 코딩
- 스토리북
- 프로그래밍
- baekjoon
- scss
- frontend
- Storybook
- 알고리즘
- 지갑
- 리액트
- TypeScript
- React
- 블록체인
- SVG
- algorithm
- 우선순위 큐
- 풀이
- three.js
- bip39
- C++
- priority queue
- Mnemonic
- 니모닉
- 기본수학1단계
- 에러
- Console
- Blockchain
- 백준
Archives
- Today
- Total
Moong
[백준 10250번][C++] 백준 ACM 호텔 본문
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
문제가 길어서 문제 내용은 링크로 대체할게요!
풀이
Algorithm
- 먼저 호수(X)를 어떻게 구할 지 생각해봅니다!
- 우선 101->201->301->401->...->H01->102->... 이런 식으로 배정을 받겠죠?
- 즉, H번 차례가 돈 후에 다음 호수로 넘어가게 된다는 뜻입니다.
- 그렇다면 차례를 H로 나눈 몫이 호수와 연관이 있겠죠!
- 근데 0호수가 아닌 1호수부터 시작하기 때문에 더하기 1을(N/H+1) 해주어야 합니다.
- 또 여기에서 예외상황이 발생하게 되는데요, 꼭대기 층인 경우 몫이 그대로 자신의 호수가 되기 때문에 예외처리를 해주어야 합니다.
- 그래서 간단한 if문을 통해 X를 정의해주었습니다.
- 그 다음, 층(Y)를 어떻게 구할 지 생각해봅니다!
- 층은 나머지와 관련이 있다는 점을 눈치 채셨나요?
- 호수가 정해지면, 1층부터 차곡차곡 배정받기 때문에 H로 나눈 나머지와 관련이 있습니다.
- 따라서 N%H가 되겠죠
- 근데 여기에서도 예외상황이 발생합니다. 마찬가지로 꼭대기 층인 경우 원래대로라면 N%H=0이 되는데, 0층이 아닌 H층이 되어야겠죠?
- 이때에도 간단한 if문을 통해 예외상황을 고려하여 Y를 정의해줍니다.
- 방 번호 구하기
- 층에 100을 곱하고 호수를 더하면 최종 방 번호가 나옵니다! (Y*100+X)
- 끝!
code
#include <iostream>
#include <string>
using namespace std;
int main() {
int T, H, W, N, X, Y;
cin >> T;
for (int n = 0; n < T; n++) {
cin >> H >> W >> N;
X = (N % H == 0 ? N / H : N / H + 1); // 호수
Y = (N % H == 0 ? H : N % H); // 층
cout << Y * 100 + X << '\n';
}
return 0;
}
'Baekjoon' 카테고리의 다른 글
[백준 1011번][C++] 백준 Fly me to the Alpha Centauri (0) | 2021.01.14 |
---|---|
[백준 10757번][C++] 백준 설탕 배달 (0) | 2021.01.11 |
[백준 2869번][C++] 백준 달팽이는 올라가고 싶다 (0) | 2021.01.07 |
[백준 1712번][C++] 백준 손익분기점 (0) | 2021.01.06 |
[백준 10809번][C++] 백준 알파벳 찾기 (0) | 2021.01.06 |