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
- 백준 #boj #baekjoon
- flutter #app #취준
- VS #비주얼스튜디오
- flutter #상태관리
- flutter #git
- 비주얼 스튜디오 #vs #visual studio
- boj #c++
- 백준 #c++
- unity #2d-game #minigame #vscode
- 백준
- 비주얼스튜디오 #코드스니펫
- baekjoon #백준 #boj
- flutter #todolist
- flutter #firebase #플러터 #파이어베이스 #연동
- Flutter
- 백준 #boj
- baekjoon #boj #c++
- boj #baekjoon #c++
- flutter #플러터 #분석
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- unity #2d-game
- flutter #플러터
- 플러터 #flutter #restful #rest api
- 로컬저장소 #이름변경
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- firebase #파이어베이스
- flutter #깃
- git #unity #깃허브
- boj #baekjoon
Archives
- Today
- Total
cococo-coding
10250번. ACM 호텔 본문
최종코드
#include <stdio.h>
int main() {
//1.테스트케이스를 입력받는다.
//2.호텔 층, 층의 방, 몇 번째 손님인지를 입력받는다.
//3. 손님에게 배정되어야 하는 방 번호를 출력한다.
//1
int num;
scanf("%d", &num);
//2
for(int i=0; i<num; i++){
int h=0,w=0,n=0;
scanf("%d %d %d", &h, &w, &n);
//n/h=몫, 여기에 +1을 해서 뒤에 붙여주고
//n%h=나머지, 이거를 받아서 앞에 붙여준다
//반례) 이때 h=1인 경우도 고려해줘야함
//반례2) 나누어 떨어지는 경우도 고려해줘야함
int back=0, front=0;
if(h==1){
back=n;
front=h;
} else if(n%h==0){
back=(n/h);
front=h;
} else{
back=(n/h)+1;
front=n%h;
}
//3
//룸 숫자를 조합하자
if(back<10){
printf("%d0%d\n",front,back);
} else {
printf("%d%d\n",front,back);
}
}
return 0;
}
과정
우선은 아래와 같이 한 케이스만 입력받아 방 번호를 출력하는 코드를 먼저 짜봤다.
#include <stdio.h>
int main() {
//1.테스트케이스를 입력받는다.
//2.호텔 층, 층의 방, 몇 번째 손님인지를 입력받는다.
//3. 손님에게 배정되어야 하는 방 번호를 출력한다.
/*1
int num;
scanf("%d", &num);
*/
//2
//우선은 한 케이스를 입력받아 계산하는 알고리즘을 짜보자
int h=0,w=0,n=0;
int cnt=0;
scanf("%d %d %d", &h, &w, &n);
//n/h=몫, 여기에 +1을 해서 뒤에 붙여주고
//n%h=나머지, 이거를 받아서 앞에 붙여준다
printf("%d %d\n", n/h, n%h);
int back=n/h+1;
int front=n%h;
//3
//룸 숫자를 조합하자
if(back<10){
printf("%d0%d",front,back);
} else {
printf("%d%d\n",front,back);
}
return 0;
}
입출력도 잘 나와서 바로 여러케이스를 입력받을 수 있도록 코드를 수정했는데 자꾸만 에러가 났다.
질문게시판에서 여러 반례를 확인할 수 있었고, 내가 고려하지 못한 2가지 케이스가 예외로 있었다.
1. H=1가 1인 경우 (높이가 1층만 있는 경우)
2. N/H가 나누어 떨어지는 경우
이 경우를 따로 if-else문으로 분기하여 조건을 추가해주었더니 통과가 되었다.
느낀점
문제를 보고 여러가지 예외케이스를 생각해두자. 그에 따라 분기하여 코드를 짜야 수정할 일이 안 생긴다.
2023.11.23
'[BOJ] 코드 모음 > C_baekJoon' 카테고리의 다른 글
2292번. 벌집 (1) | 2023.11.27 |
---|---|
1978번. 소수 찾기 (1) | 2023.11.26 |
1157번. 단어 공부 (2) | 2023.11.23 |
2920번. 음계 (1) | 2023.11.22 |
8958번. OX퀴즈 (2) | 2023.11.22 |