CodeUp 기초 100제 중 1085번부터 1088번까지는 데이터의 저장 용량을 계산하는 실생활 응용 문제와, 반복문의 흐름을 강제로 제어하는 제어문(break, continue)을 익히는 구간입니다.
앞선 문제들이 반복문을 '어떻게 돌리느냐'에 집중했다면, 이번 단계에서는 큰 데이터를 처리할 때의 자료형 선택과 반복문을 중간에 멈추거나 건너뛰는 정교한 제어를 배울 수 있습니다.
소리를 저장할 때 필요한 저장 공간(MB)을 계산하는 문제입니다. CD 음질(44.1KHz, 16bit, 2channel) 등의 오디오 데이터 크기를 직접 계산해 봅니다.
소스 코드
#include <stdio.h>
int main() {
long long h, b, c, s; // 입력값이 곱해지면 매우 커지므로 long long 사용 권장
double total_mb; // 최종 결과는 소수점이므로 double형 사용
scanf("%lld %lld %lld %lld", &h, &b, &c, &s);
// 비트(bit) 단위 총합 계산 후 -> 바이트(8) -> 킬로바이트(1024) -> 메가바이트(1024)로 나눔
// 나눗셈을 위해 8.0 등으로 나누어 실수 연산 유도
total_mb = (h * b * c * s) / 8.0 / 1024 / 1024;
printf("%.1lf MB", total_mb); // 소수점 첫째 자리까지 출력
return 0;
}
예시 입력 / 출력
[입력]
44100 16 2 10
[출력]
1.7 MB
문제 해설
이 문제의 핵심은 단위 변환과 자료형의 범위(Overflow) 이해입니다.
1085번과 유사하게, 이번에는 이미지 파일의 해상도(가로, 세로)와 비트 깊이를 이용해 저장 용량을 계산합니다.
소스 코드
#include <stdio.h>
int main() {
long long w, h, b; // 큰 수의 곱셈을 대비해 long long 선언
double total_mb;
scanf("%lld %lld %lld", &w, &h, &b);
// 가로 * 세로 * 비트수 = 총 비트
// 8로 나누면 Byte, 1024로 나누면 KB, 다시 1024로 나누면 MB
total_mb = (w * h * b) / 8.0 / 1024 / 1024;
printf("%.2lf MB", total_mb); // 소수점 둘째 자리까지 출력
return 0;
}
예시 입력 / 출력
[입력]
1024 768 24
[출력]
2.25 MB
문제 해설
소리 파일 계산과 원리는 동일합니다. 가로($w$) $\times$ 세로($h$) 픽셀에 픽셀당 비트($b$)를 곱해 전체 용량을 구합니다.
1, 2, 3... 순서대로 계속 더해나갈 때, 그 합이 입력된 정수보다 같거나 커지는 순간 멈추고 그때까지의 합을 출력하는 문제입니다.
소스 코드
#include <stdio.h>
int main() {
int n;
int i, sum = 0;
scanf("%d", &n);
for(i = 1; ; i++) { // 조건식이 비어있으면 무한 루프
sum += i; // sum에 i를 누적해서 더함
if(sum >= n) { // 합계가 입력값 n보다 크거나 같아지면
break; // 반복문을 즉시 탈출!
}
}
printf("%d", sum);
return 0;
}
예시 입력 / 출력
[입력]
57
[출력]
66
문제 해설
break 문의 활용이 핵심입니다.
1부터 입력받은 숫자까지 출력하되, 3의 배수인 경우에는 출력하지 않고 건너뛰는 문제입니다.
소스 코드
#include <stdio.h>
int main() {
int n, i;
scanf("%d", &n);
for(i = 1; i <= n; i++) {
if(i % 3 == 0) { // i가 3의 배수라면
continue; // 아래 코드를 실행하지 않고, 증감식(i++)으로 이동
}
printf("%d ", i);
}
return 0;
}
예시 입력 / 출력
[입력]
10
[출력]
1 2 4 5 7 8 10
문제 해설
continue 문의 활용이 핵심입니다.
| [CodeUp] C언어 기초 100제 풀이 (1093번 ~ 1096번) (0) | 2026.02.04 |
|---|---|
| [CodeUp] C언어 기초 100제 풀이 (1089번 ~ 1092번) (0) | 2026.02.04 |
| [CodeUp] C언어 기초 100제 풀이 (1081번 ~ 1084번) (0) | 2026.02.03 |
| [CodeUp] C언어 기초 100제 풀이 (1076번 ~ 1080번) (0) | 2026.02.03 |
| [CodeUp] C언어 기초 100제 풀이 (1071번 ~ 1075번) (0) | 2026.02.03 |