더북(TheBook)

해설

이번 문제는 손님 50명의 운행 소요시간을 확인해 조건에 맞을 때만 매칭하는 프로그램을 작성하는 것입니다. 실행결과는 손님 50명을 모두 출력하되 매칭되면 [O]으로, 매칭되지 않으면 []로 표시하고, 해당 손님의 운행 소요시간 정보도 함께 출력합니다. 그리고 마지막 줄에는 총 탑승객 수를 출력합니다.

실행결과 예시에서는 1번째 손님과 3번째 손님이 각각 소요시간 15분, 5분으로 조건에 만족해서 [O]로 표시합니다. 난수를 이용한 프로그램이므로 실행결과는 실행할 때마다 달라질 수 있다는 점을 유의해 주세요.

조건 1에서 운행 소요시간은 난수로 정해야 하므로 먼저 random 모듈을 추가합니다.

마지막 줄에 총 탑승객 수를 출력하므로 손님이 매칭될 때마다 어딘가 값을 저장해야 합니다. 그래서 코드 시작 부분에 탑승객 수를 표시하는 cnt 변수의 초깃값을 0으로 정의합니다.

문제에서 손님이 총 50명이라고 했으니 50번 반복하는 for 문을 작성합니다. 실행결과에 1번째 손님, 2번째 손님처럼 숫자 정보를 출력해야 하므로 반복 대상은 연속한 정수가 나오도록 range() 함수로 지정합니다.

조건 1에 따라 손님마다 운행 소요시간을 5~50분에서 뽑아야 합니다. 따라서 반복문 안에서 5~50인 범위를 지정해 randrange() 함수로 난수를 뽑고 시간 정보를 저장하는 time 변수에 저장합니다.

조건 2에서 소요시간이 5~15분인 손님만 매칭한다고 했으므로 time 변수의 값이 5~15인지 if 문의 조건으로 비교합니다. 조건에 맞으면 매칭 성공 정보를 출력하고 총 탑승객 수를 1 증가시킵니다.

조건에 맞지 않으면 매칭 실패 정보만 출력합니다.

반복이 끝나면 for 문을 빠져나와 cnt 변수에 담긴 총 탑승객 정보를 출력합니다.

본문으로

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.