[프로그래머스] 알고리즘 - 스택/큐 기능개발

Sohyeon·2020년 11월 26일
0

알고리즘

목록 보기
3/10

알고리즘 스터디 이번주 주제는 스택/큐 개념을 잡고 프로그래머스 문제 4개를 풀어보는 것이었다. 하루에 하나씩 하려고 노력 중이다. 전체적으로 코테 시험보다는 알고리즘 개념을 잡고 사용해보는게 목표라 이것저것 해보려고 한다.

원래는 자바스크립트로 코테를 풀다가 아무래도 파이썬이 훨씬 간편하다고 들었고 사용해보고 싶어서 알고리즘 공부를 기회로 파이썬도 같이 공부해보기로 했다. 성취감을 먹고 사는 사람으로서 당장 결과가 없는 취준기간엔 역시 가시적인 성과가 있어야 잘 견딜 수 있는 것 같다.

문제

문제는 어렵지 않았다.
각 인덱스를 프로젝트라 보고 processes에는 각 프로젝트의 진행도를, speeds에는 진행속도를 리스트 형태로 받아 각 배포시마다 몇 개의 기능이 배포되는지를 answer에 담아 return 하면 된다.


풀이법

각 프로젝트의 완성도는 항상 100으로 (100-processes의 진행도) / (speeds의 진행속도) 를 구하면 프로젝트 완성까지 몇 일이 걸리는 지 알 수 있다.

NEW!!

나누기의 결과가 소수점으로 나오는 경우, 올림을 해주기 위해 math.ceil을 사용했으나 다 풀고 다른 사람의 풀이법을 보니 -((p-100)/s)을 하면 음수를 나누면 무조건 올림이 되어 math를 import 해주지 않아도 되었다.

총 걸리는 기간(leftDay)를 period에 담아주고 pop()을 사용하기 위해 reverse()해준다. (deque를 사용해 popleft()를 할 수도 있었지만 더 import 하고 싶지 않았다.)

period가 true일 때까지 while문을 사용해 비교한다.



반성할 점

분명 카테고리는 스택/큐인데, 파이썬을 처음 접하는 것이다 보니 큐로 구현할 방법을 찾아보지 않아 정작 문제 해결 시에, 큐를 전혀 고려하지 못했다.
큐를 사용하면 zip을 사용해 훨씬 간단하게 풀 수 있다고 한다.



출처
프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42586

profile
춤 추는 주니어 프론트엔드 개발자입니다

0개의 댓글

관련 채용 정보