알고리즘/C#

[C#] 기능 개발- 프로그래머스

야아옹 2020. 9. 26. 21:04

문제를 풀어가면서 아직은 기초가 부족한 느낌이 많이 있어 차라리 하나의 문제를 여러방면으로 풀수있게 공부 

하기로 바꿧다. 느리더라도 하나의 문제당 최소 3 ~ 5개의 풀이를 찾고 공부하는 식으로 변경.

 

문제 1 - 프로그래머스 : 스택, 큐 파트 기능 개발

 

풀이 1

- 각 프로세스별 걸리는 시간을 계산 ((100 - Progresses[index] )/ speeds[index]) 하고

- 걸리는 시간에 대하여 중복되는 시간 계산 (다중 For 문) 

 

풀이 2 - 풀이 1과 같지만 다른 방식

- 각 프로세스별 걸리는 시간을 계산 ((100 - Progresses[index] )/ speeds[index]) 하고

- 걸리는 시간에 대하여 중복되는 시간 계산 (for 문) 

 

풀이 2 - Queue 사용

- KeyValuePair 를 가지는 Queue 를 생성 및 Progresses 에 인덱스를 부여

- Progresses 수많큼 Dequeue 하여 값을 뺴고 Speed 많큼 더한 후 인덱스화 함께 다시 Enqueue

- 이후  Peek 값이 (첫값) 100 을 넘을 시 카운트 증가 

풀이 3 - Queue 사용

- 작업을 진행 해야하는 량을 배열로 저장 ->work 배열

- 작업량에 속도를 나누어 걸리는 시간을 계산 ->date 배열

- 중복되어지는 시간에대한 Count 계산 후 Queue에 대입