본문 바로가기

COMPUTER SCIENCE/Coding Test

코딩 테스트 준비 문제[리스트 스택/큐] _ python3

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

코드 결과:

코드 결과