스택/큐 4

[프로그래머스] 주식가격

※ 해당 문제의 링크는 여기입니다. ※ Queue를 활용하여 문제를 해결하였습니다. ※효율성 테스트가 있습니다. 혼자서 푸실 분들은 유의해주세요.※ 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 문제만 보고 헷갈릴 수 있습니다. 질문하기에 자세히 작성해주신 분이 있으셨습니다. 감사합니다. (링크) 알고리즘 굉장히 간단한 문제입니다. 배열로도 충분히 해결할 수 있는 문제입니다. 하지만 스택으로 문제를 해결하려고 했지만, 스택을 자주 사용해보지 않아 잘 몰라, 그나마 조금이라도 더 아는 Queue로 문제를 해결하였습니다. public int getTimeWhenFalls(int currentPrice, Queue left..

[프로그래머스] 다리를 지나는 트럭

※ 해당 문제의 링크는 여기입니다. ※ Inner Class를 사용해 문제를 해결하였습니다. 제한사항 bridgeLength 길이의 다리가 있고, 정해진 순서에 맞춰 트럭이 건너가야 한다. 트럭마다 무게가 각각 존재한다. bridgeLength길이만큼 트럭을 다리 위로 이동시킬 수 있으나, 다리가 최대로 버틸 수 있는 무게는 정해져 있다. 트럭은 한 번에 1씩만 움직일 수 있고, bridgeLength만큼 전부 움직여야 다리를 완전히 건넌 것이다. 한 번에 하나의 행동만 가능하다. (동시에 트럭을 2대 이상 이동시킬 수 없음) 위 문제에 자세히 설명이 되어있지 않아, 문제를 풀어서 설명하였습니다. 알고리즘 문제를 이해하는 데에 오래 걸렸습니다. 질문하기에서도 많은 분들이 문제를 이해하기 어려워하셨습니다...

[프로그래머스] 프린터

※ 해당 문제의 링크는 여기입니다. ※ 다른 분들이 푸신 방법이 더 좋을 수도 있지만 제가 생각해낸 방법으로 포스팅하도록 하겠습니다. (대부분 Inner Class, Queue 둘 중 하나, 혹은 둘 다 사용하셔서 푸셨습니다. 저 같은 경우에는 Queue만 사용하여 해결했습니다.) 제한사항 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냄 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣음 그렇지 않으면 J를 인쇄 알고리즘 문제를 파악함에 있어 제가 가장 중요하게 확인한 점은 값이 같더라도 위치를 정확하게 파악하는 것이었습니다. 그리고 해당 값을 인쇄, 즉 사라지게 된 후에는 다시 제한사항을 반복한다는 점이었습니다. 그래서 개인적으로 ..

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

※ 해당 문제의 링크는 여기입니다. ※ 배열로 푸는 편이 더 코드가 단순해지지 않을까 생각하였지만 스택/큐 영역인 만큼 이 둘을 최대한 사용하는 것이 맞다고 생각이 들어 Queue를 사용하여 문제를 해결하였습니다. 코드와 알고리즘 로직을 설명하기 앞서 문제에서 주의 깊게 봐야 하는 점들을 먼저 설명하도록 하겠습니다. 제한 사항 배포는 하루에 한 번만 가능하다. 뒤에 있는 기능을 먼저 완성하였다고 바로 배포할 수 없고, 앞에 있는 기능이 완성된 후, 같이 배포하게 된다. 한 번에 몇 개 배포하였는지 카운트를 배열에 저장한 후, 이를 반환해주어야 한다. 테스트 케이스 및 설명도 잘 되어있어 두세 번 정도 읽어보면 금방 이해할 수 있습니다. 알고리즘 로직 일단, 모든 알고리즘 해결 방식은 굉장히 많으므로 제가..