백준문제풀기
백준 단계별로 풀어보기
#10250 ACM 호텔
#include<stdio.h>
int main(void) {
int i, t, h, w, n, j, rh, rw;
scanf("%d", &t); //테스트 데이터 개수
for(i=0;i<t;i++) {
j=1;
scanf("%d %d %d", &h, &w, &n); // 높이, 방개수, 손님순서
if( n <= h ) { // H01호에 배정
rh = n;
rw = 1;
} else {
while( n > h ) {
n -= h;
j++;
}
if( j>w ) // 빈방없음?
printf("빈방없음");
// n층 j호
rh = n;
rw = j;
}
if(rw<9)
printf("%d0%d\n", rh, rw);
else
printf("%d%d\n", rh, rw);
}
return 0;
}
while문을 사용할때 부등호를 실수해서 조건식을 만든다. while문은 조건이 참인동안 반복한다.
n 번째 손님이 왔을 때 배정해야할 방을 안내하는 것이 목적이니까 while문을 탈출한뒤 j > w 이면 빈방이 없는게 아니라 j를 j에서 w를 뺀값으로 설정하는 것이 맞는것 같다.
문제를 제대로 읽지않아서 그랬다. n은 h*w보다 클 수 없다.
틀렸다. 허허허
printf("%d%02d\n", rh, rw);
출력 형태를 바꾸니까 맞았다. ㅎㅎ
#2775 부녀회장이 될테야
#include<stdio.h>
int main(void) {
int a[15] = {0};
int t, i, k, n, j, l, p=0;
scanf("%d", &t);
for(i=0;i<t;i++){
scanf("%d %d", &k, &n);
for(l=1;l<15;l++) // 케이스가 시작할때마다 배열 초기화
a[l] = l;
for(j=0;j<k;j++) {
p=0;
for(l=1;l<=n;l++){
p += a[l]; //a[l]에는 현재층의 아래층 l호에 사는 사람 수가 저장된다.
a[l] = p; //p에는 현재층 l호에 살아야하는 사람들의 수가 저장된다.
}
}
printf("%d\n", p);
}
}
공부 진짜안하네
꿈은 크게