article thumbnail image
Published 2021. 1. 19. 18:01

#1037: 약수

[문제]

 

[코드]

#include<stdio.h>

int main()
{
	int a[50] = { 0 }, n, N;
	int max = 1, min = 1000000;

	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%d", a + i);
        
	for (int i = 0; i < n; i++)
	{
		max = (*(a + i) > max) ? *(a + i) : max;
		min = (*(a + i) < min) ? *(a + i) : min;
	}
	N = max * min;
	printf("%d\n", N);

	return 0;
}

 

[코드설명]

어떤 정수 N의 약수는 1과 자기 자신을 제외했을 때 제일 작은 약수제일 큰 약수를 곱하면 자기 자신이 된다. 따라서 약수를 입력 받고, 입력 받은 약수 중 가장 큰 값과 가장 작은 값을 각각 max와 min에 저장하고 곱했다.

 

[채점 결과]

 

 

 

#1712: 손익분기점

[문제]

 

[코드]

#include<stdio.h>

int main()
{
	int A, B, C, n;

	scanf("%d %d %d", &A, &B, &C);

	if (B >= C)		printf("-1\n");
	else			printf("%d\n", A / (C - B) + 1);
	
	return 0;
}

 

[코드설명]

처음엔 A + B*n < C*n 이 식을 사용해서 while문으로 n을 하나씩 증가시켜서 풀었는데 채점 결과 정답이 아니었다. 그래서 이 식을 n에 대하여 정리한 A / (C-B) < n 해당 식을 사용해서 풀었다.

 

B가 C보다 크거나 같으면 손익분기점이 생길 수 없으므로 -1을 출력하고, C가 B보다 크면 A / (C-B) 값에 ceil을 취해서 출력했다. 이때 A, B, C가 정수라서 ceil 함수를 사용하지 않고 1을 더해줬다.

 

[채점 결과]

 

'알고리즘' 카테고리의 다른 글

[BOJ] 2748/2750  (0) 2021.02.01
[BOJ] 2941/2884  (0) 2021.01.26
C 과제 1/2  (0) 2021.01.11
[BOJ] 10809/10773  (0) 2021.01.07
[SWEA] 8821/8741  (0) 2020.11.28
복사했습니다!