1. 문제와 문제 조건 파악하기
문제:
두 개의 리스트와 하나의 정수 데이터가 매개변수로 주어진다. 이때 하나의 리스트에는 생산되는 제품의 이름이 포함되어있고, 나머지 하나의 리스트에는 각 제품의 생산율을 백분율로 나타낸다. 1시간에 생산율만큼 제품이 생산된다고 할 때, 주어진 정수 시간만큼 지난 후에 생산되는 제품 순서대로 이름을 리스트 결과로 반환하는 프로그램을 만들어라.
조건:
- 제품의 이름은 ['A', 'B', 'C']이고 생산 비율은 [20,30,10]
- 생산된 제품이 없다면, 빈 리스트를 반환
- 스택 또는 큐를 이용할 것, 시간은 4시간, 8시간, 12시간에 대해서의 결과
2. 유용한 리스트 함수 _ 리스트 스택 & 큐
스택은 들어간 데이터 순서대로 나오고, 큐는 대기 줄을 생각하면 된다. 이를 기억해두면 나중에 응용하기 쉽다.
코드 1 _ List.append(data)
; data 변수의 데이터를 List의 가장 앞쪽에 저장한다.
코드 2 _ List.pop()
; 리스트의 가장 마지막 데이터를 반환과 동시에 삭제한다.
코드 3 _List.pop(index)
; 리스트내에서 index에 해당하는 위치에 저장된 데이터를 삭제한다.
코드 4 _List.sort()
; 리스트를 오름차순으로 정렬한다.
코드 5 _sorted(List)
; 리스트를 오름차순으로 정렬하여 반환한다.
코드 6 _List.index(data)
; data에 해당하는 인덱스를 List 내에서 찾아 반환한다.
3. 문제 풀어보기
문제를 해결하기 위해 제시한 예시 코드는 다음과 같습니다.
예시 코드:
product=['A','B','C']
rate=[20,30,10]
time=4
def result(product,rate,time):
newrate=sorted(rate)
Ans=[]
for i in range(len(rate)):
R=newrate.pop()
if R*time>=100:
Ans.append(product[rate.index(R)])
return Ans
코드 결과:
'COMPUTER SCIENCE > Coding Test' 카테고리의 다른 글
DFS 및 BFS 기본 응용 문제 _ 방문 순서 출력 (0) | 2022.01.21 |
---|---|
코딩 테스트 준비 문제 [사칙 연산 문제] _ Python3 (0) | 2022.01.10 |
코딩 테스트 준비 문제 [약수 문제] _ Python3 (0) | 2022.01.10 |
코딩 테스트 준비 문제 [문자열 처리 문제] _ Python3 (0) | 2022.01.08 |
코딩 테스트 준비 문제 [로또 관련 문제] _ Python3 (0) | 2022.01.07 |