본문 바로가기
프로그래밍/코드업 파이썬 기초 100제

코드업 파이썬 기초 100제 6084번(100제 84번째 문제)

by 리드민 2023. 2. 6.
반응형

[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 

 

[기초-종합] 소리 파일 저장용량 계산하기(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

[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 함수는 값을 출력하는 함수이다.

반응형