백준(C언어)/22년 8월

8월 2일(화) - 7단계(10250번)

C0MPAS 2022. 8. 2. 11:10

7단계 - 10250번

 

10250번: ACM 호텔

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

www.acmicpc.net

 

문제점

1. 최초풀이 그대로 제출했더니 틀렸다. 아무래도 에재를 제외한 반례를 생각해보지 못한 것 같다

-> N 이 H의 배수여서 N%H가 0이 되는 경우를 빼먹었기에, 해당 경우를 if 조건문으로 추가했다.

 

2. 최종풀이로 넘어가기기 직전 풀이에서, N%H==0 인 경우 앞숫자를 H가 아닌 N을 활용해서 한 번 더 틀렸다

-> 결국 6 12 24를 입력하면 2404로 잘못 출력되는 경우를 한 번 더 겪었다.

-> 조건을 제대로 활용하자

 

최초풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>

int main(void)
{
	int T, H, W, N;
	scanf("%d", &T);

	for (int i = 0; i < T; i++)
	{
		scanf("%d %d %d", &H, &W, &N);

		printf("%d%02d\n", N % H, (N/H)+1);
	}

	return 0;
}

 

최종풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>

int main(void)
{
	int T, H, W, N;
	scanf("%d", &T);

	for (int i = 0; i < T; i++)
	{
		scanf("%d %d %d", &H, &W, &N);

		if ((N%H) == 0)
		{
			printf("%d%02d\n", H, (N / H));
		}

		else
		{
			printf("%d%02d\n", N % H, (N / H) + 1);
		}
	}

	return 0;
}

 

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