http://cham.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1281&sca=9060
간단 문제 분석
M1: B/(N-1) | B/(N-1) | B/(N-1) | ...... | B/(N-1)+1 | B/(N-1)+1 | MN: B/(N-1)+1 |
주어진 게 총 할부 기간 N
앞으로(N-1달간) 내야하는 다이아 수 B
그림 기본적으로 2일부터 N일까지 B/(N-1) 만큼 기본적으로 내는데 마지막날(MN) 부터 전 몇 달은 +1 해서 내야한다.
근데 +1해서 내는 개월 수는 B%(N-1)로 알 수 있다.
최대, 최솟값이 갈리는 경우는 다음과 같다.
B/(N-1) == 0 이면, 금액이 이렇게 나뉘는데
M1: ? | B/(N-1) | ... | B/(N-1) | MN: B/(N-1) |
이때, B/(N-1)이 +1 된 금액인지, 기본 금액인지 알 수가 없다.
만약 B/(N-1)이 +1된 금액이면 M1 = B/(N-1)-1 일 거고, 기본 금액이라면 M1 = B/(N-1)일 것이다.
그럼 전자의 경우가 최솟값이고, 후자의 경우가 최댓값이 된다.
작성 코드(C):
#include <stdio.h>
int A, B, N;
int main(void)
{
// 여기서부터 작성
scanf("%d", &N);
scanf("%d", &B);
int max = 0, min = 0;
int def = B/(N - 1); // 남은 다이아/남은 할부 기간
if (B % (N - 1) == 0) {
min = def * (N - 1) + def - 1;
max = def * (N - 1) + def;
}
else {
max = def * (N - 1) + B % (N - 1) + def;
min = def * (N - 1) + B % (N - 1) + def;
}
printf("%d %d", min, max);
return 0;
}
'컴퓨터기본 > 문제풀이' 카테고리의 다른 글
[백준] 10799번: 쇠막대기 (0) | 2021.09.03 |
---|---|
[백준] 2567번: 색종이 - 2 (0) | 2021.09.03 |
[정올] 2712 : 두 수의 최소합 (0) | 2021.09.03 |
[백준] 5622번: 다이얼 (0) | 2021.08.30 |
[백준] 2751번: 수 정렬하기 2 (0) | 2021.08.26 |