[백준|C++] 10250: ACM 호텔

2021. 9. 1. 02:40·Problem Solving/백준
반응형
문제

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

 

10250번: ACM 호텔

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

www.acmicpc.net

 

 

코드
#include<iostream>
using namespace std;

int main() {
	int tc;
	cin >> tc;
	int w;
	int h;
	int N;

	while (tc--) {
		cin >> h >> w >> N;
		int X, Y;

		if (N % h == 0) 
			X = N / h; 
		else 
			X = N / h + 1;
		
		if (N % h == 0) 
			Y = h;
		else 
			Y = N % h;
		
		cout << Y * 100 + X << '\n';
	}
	return 0;
}

 

 

코드 설명

출처: 백준 온라인 저지

방 배정 순서

101 > 201 > 301 > 401 > 501 > 601 > 102 > 202 > 302 > ...

 

패턴

층 수h는 하나씩 높아지고 호 수w는 동일.

→ 층 수가 꼭대기라면: 층 수h는 1로 초기화되고 호 수w가 +1 증가 

→ 그 상태에서 층 수h는 하나씩 높아지고 호 수w는 동일

 

int X, Y;

X는 호 수, Y는 층 수

 

호 수 구하는 공식. 

X = N / h + 1;

ex. 10명이 6층의 건물에 묵을 때

한 호수(n01호)에는 6명의 손님만 묵을 수 있으므로 7번째 손님부터는 n02호에 묵게 된다.

이를 이용해 이용객의 숫자를 층 수로 나누어준다.

10 / 6을 하면 1.66667의 결과가 나온다. (int 형이므로 결과는 1로 출력됨)

호수는 1호부터 시작하므로 결과값에 1을 더해주면 해당 10번째 손님은 n02호에 묵고 있는 것이다.

 

※예외처리

ex. 12명이 6층의 건물에 묵을 때

12 / 6 = 2이므로 결과값에 1을 더해주면 해당 손님은 실제로는 n02호에 묵고 있음에도 불구하고 n03호실에 묵고 있는 것으로 결과가 도출된다. 

이를 예외로 처리해주기 위해 해당 경우에는 12 / 6 = 2를 호 수로 입력해 준다. 

if (N % h == 0) 
	X = N / h; 
else 
	X = N / h + 1;

 

층 수 구하는 공식.

Y = N % h;

ex. 10명이 6층의 건물에 묵을 때

호 수 구하는 공식에서 설명한 것과 마찬가지고, 한 호수(n01호)에는 6명의 손님만 묵을 수 있으므로 7번째 손님부터는 n02호에 묵게 된다.

이를 이용해 이용객의 숫자를 층 수로 나누어주면, 그 나머지로는 이전 n01호에서 채 수용하지 못한 손님의 명수가 출력된다. 층은 1층부터 시작하므로 해당 인원의 카운트를 세어 n에 넣어주면 해당 손님이 묵고 있는 층 수를 알 수 있다.

10 % 6을 하면 4가 출력되므로 해당 10번째 손님은 402호에 묵고 있는 것이다.

 

※예외처리

ex. 12명이 6층의 건물에 묵을 때

해당 손님이 건물의 꼭대기 층에 묵고 있기 때문에 나머지가 남지 않는 경우이다.

12 / 6 = 0이므로 해당 손님은 00n호에 묵고 있는 것으로 결과가 도출된다.

이를 예외로 처리해주기 위해서는 층 수 X에 그냥 사용자에게 입력받은 층 수 h를 대입해 주면 된다.

if (N % h == 0) 
	Y = h;
else 
	Y = N % h;

 

마지막으로 해당 결과를 출력해 준다. 

cout << Y * 100 + X << '\n';

 

 

 

마무리

예외처리가 제일 어렵다.

테스트 케이스에는 예외 케이스가 없다.

그래서 내 컴퓨터에서 예제 입력하면 결과가 분명히 맞게 나오는데 채점 서버에 넣어보면 틀렸다고 뜸. 그럴 때마다 어디가 틀렸는지 고민을 한참 한다.

결국 오늘도 구글신의 도움을 받았다. 

은혜로운 블로그^^...

 

참고한 블로그

https://st-lab.tistory.com/7

 

[백준] 10250번 : ACM 호텔 - JAVA [자바]

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은

st-lab.tistory.com

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > 백준' 카테고리의 다른 글

[백준|파이썬] 1260: DFS와 BFS (실버2)  (0) 2023.04.05
[백준|C++] 2750: 수 정렬하기  (0) 2021.09.10
[백준|C++] 2869: 달팽이는 올라가고 싶다  (0) 2021.09.02
[백준|C++] 2292: 벌집  (0) 2021.09.01
[백준|C++] 1712: 손익분기점  (0) 2021.08.31
[백준|자바] 5622: 다이얼  (0) 2021.08.28
'Problem Solving/백준' 카테고리의 다른 글
  • [백준|C++] 2750: 수 정렬하기
  • [백준|C++] 2869: 달팽이는 올라가고 싶다
  • [백준|C++] 2292: 벌집
  • [백준|C++] 1712: 손익분기점
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    타입스크립트
    Til
    뉴렉처
    블로그 제작
    클론 프로젝트
    Jiraynor Programming
    mysql
    d3
    ZeroCho
    AWS
    SWEA
    자바스크립트
    프로그래머스
    컴퓨터네트워크
    구현
    spring boot
    알고리즘
    플러터
    포트폴리오
    강의내용정리
    Next.js
    공식문서
    리액트
    백준
    bfs
    웹사이트
    자바
    React
    파이썬
    프로젝트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[백준|C++] 10250: ACM 호텔
상단으로

티스토리툴바