[1] 코드업 파이썬 기초 100제
100제 84번째 문제
[2] 문제
녹음할 시간(초) s가 주어질 때,
필요한 저장 용량을 계산하는 프로그램을 작성해보자.
실제로, 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면
44100 * 16 * 2 * 1 bit의 저장공간이 필요한데,
44100*16*2*1/8/1024/1024 로 계산하면 약 0.168 MB 정도가 필요하다.
이렇게 녹음하는 방식을 PCM(Pulse Code Modulation) 방법이라고 하는데,
압축하지 않은 순수한(raw) 소리 데이터 파일은 대표적으로 *.wav 가 있다.
**
8 bit(비트) = 1byte(바이트) # 8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) # 1024Byte=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)
1. 입력
h, b, c, s 가 공백을 두고 입력된다.
h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.
2. 출력
필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
단, 소수점 첫째 자리까지의 정확도로 출력하고 MB를 공백을 두고 출력한다.
3. 입력 예시
44100 16 2 10
4. 출력 예시
1.7 MB
https://codeup.kr/problem.php?id=6084
[3] 정답
1. 해설 미포함
h, b, c, s = input().split()
h = int(h)
b = int(b)
c = int(c)
s = int(s)
e = (h * b * c * s)/(8*1024*1024)
print(format(e, ".1f"), end='')
print(' MB')
2. 해설 포함
h, b, c, s = input().split()
# 공백을 기준으로 값 4개를 입력받아 각각 변수 h, b, c, s에 저장한다.
h = int(h)
# 변수 h에 저장된 값을 정수로 형변환한 후 변수 h에 다시 저장한다.
b = int(b)
c = int(c)
s = int(s)
e = (h * b * c * s)/(8*1024*1024)
# (h * b * c * s)/(8*1024*1024) 연산값을 변수 e에 저장한다.
print(format(e, ".1f"), end='')
# 변수 e에 저장한 값에서 소수 둘째자리에서 반올림한 값을 출력한다.
print(' MB')
# 문자열 MB를 출력한다.
input 함수는 값을 입력받는 함수이다.
int 함수는 변수에 저장된 값을 int(정수형)으로 변환한 후 출력하는 함수이다.
format 함수를 이용하면 소주점 첫째자리부터 출력할 수 있다.
print 함수는 값을 출력하는 함수이다.
'프로그래밍 > 코드업 파이썬 기초 100제' 카테고리의 다른 글
코드업 파이썬 기초 100제 6086번(100제 86번째 문제) (0) | 2023.02.06 |
---|---|
코드업 파이썬 기초 100제 6085번(100제 85번째 문제) (0) | 2023.02.06 |
코드업 파이썬 기초 100제 6083번(100제 83번째 문제) (0) | 2023.02.06 |
코드업 파이썬 기초 100제 6082번(100제 82번째 문제) (0) | 2023.02.06 |
코드업 파이썬 기초 100제 6081번(100제 81번째 문제) (0) | 2023.02.05 |