[기초] 화학 실험실
edX의 C Programming: Language Foundations 코스에 나오는 문제입니다.(번역)
물론 파이썬으로도 풀 수 있습니다. 반복문과 조건문, 사용자 입력 받는 방법만 알면 됩니다. 거기서 조금 더 알면 더 쉽게 풀 수 있고요.
University chemists have developed a new process for the manufacturing of a drug that heals wounds extremely quickly. The manufacturing process is very lengthy and requires monitoring the chemicals at all times, sometimes for hours! Entrusting this task to a student is not possible; students tend to fall asleep or not pay close attention after a while. Therefore you need to program an automatic device to monitor the manufacturing of the drug. The device measures the temperature every 15 seconds and provides these measurement to your program.
Your program should first read two integers representing the minimum and maximum safe temperatures. Next, your program should continuously read temperatures (integers) that are being provided by the device. Once the chemical reaction is complete the device will send a value of -999, indicating to you that temperature readins are done. For each recorded temperature that is in the correct range (it could also be equal to the min or max values), your program should display the text "Nothing to report". But as soon as a temperature reaches an unsafe level your program must display the text "Alert!" and stop reading temperatures (although the device may continue sending temperature values).
Examples
Input:
10 20
15 10 20 0 15 -999
Output:
Nothing to report
Nothing to report
Nothing to report
Alert!
Input:
0 100
15 50 75 -999
Output:
Nothing to report
Nothing to report
Nothing to report
최용 님 5738
2020년 7월 10일 10:00 오후
6개의 답변이 있습니다. 1 / 1 Page
좋은 퀴즈네요
one = input() # 첫번째입력
two = input() # 두번째입력
_min, _max = map(int, one.split())
for n in map(int, two.split()):
if n == -999:
break
elif _min <= n <= _max:
print("Nothing to report")
else:
print("Alert!")
break
그런데 첫번째 예시의 답이 좀 이상하네요.
출력으로 5개가 나와야 하는데 4개만 나와 있습니다.
아.. 문제를 잘못 봤네요. Alert 이후 종료군요 ㅎㅎ
수정했습니다.
박응용 님
M 2020년 7월 14일 12:10 오전
allowed_temps = input()
datas = input()
[min_temp, max_temp] = allowed_temps.split(' ')
data_list = datas.split(' ')
for data in data_list:
if data >= min_temp and data <= max_temp:
print('Nothing to report')
elif data == -999:
break
else:
print('Alert!')
break
댓글을 반영하여 다음과 같이 수정합니다. ^^;
allowed_temps = input()
datas = input()
[min_temp, max_temp] = allowed_temps.split(' ')
data_list = datas.split(' ')
for data in data_list:
if int(data) >= int(min_temp) and int(data) <= int(max_temp):
print('Nothing to report')
elif int(data) == -999:
break
else:
print('Alert!')
break
자료형을 모두 int로 변경했습니다.
wjpark11 님
M 2020년 7월 14일 12:45 오전
a, b = map(int, input().split())
ls = list(map(int, input().split()))
for i in ls:
if i == -999: break
elif a <= i <= b: print('Nothing to report')
else:
print('Alert!')
break
insuhkim 님
M 2020년 9월 15일 3:19 오후
low = int(input('최저 온도 입력'))
high = int(input('최고 온도 입력'))
while True:
num = int(input('현재 온도 입력'))
if num < low or num > high:
print('Alert!')
break
elif num == -999:
break
else: print('Nothing to report')
lollo 님
2021년 11월 22일 1:26 오전
minNum, maxNum = map(int, input().split())
temperatureList = list(map(int, input().split()))
for temperature in temperatureList:
if temperature == -999:
break;
if minNum <= temperature <= maxNum:
print('Nothing to report')
else:
print('Alert!')
undeadx 님
2023년 2월 3일 2:24 오후
cemi=input().split()
e='save'
while e!='Alert':
.....time=input().split()
.....for i in range(len(time)):
.........if int(cemi[0])<=int(time[i])<=int(cemi[1]):
...............print("Nothing to report")
...............i+=1
..........else:
...............e='Alert'
...............print(e)
...............break
khsoep 님
2024년 4월 2일 10:53 오후