자료구조와 알고리듬 With Java/[프로그래머스] Algorithm

Part 05 Stack과 Queue

계란💕 2022. 3. 23. 12:39

  Note) list interface의 메서드

  - list.remove(인덱스) : 꺼내서 제거 - pop()

    -> 인덱스 말고 데이터의 값을 제거하려면? 

    ex) 데이터가 int일 때 =>  list.remove(Integer.valueOf(지우고 싶은 값)) 으로도 표현 가능

  - list.get(인덱스): 꺼내서 보여준다. - peek()

 

1. Stack

  - LIFO구조

  - push / pop / peek

 

2. Queue

  - FIFO구조

  - offer / poll / peek

 

3. Deque

  - 앞이나 뒤에서도 꺼낼 수 있다.

  - 인터페이스로 제공

  - offer(First / Last) / poll(First / Last) / peek(First / Last)

 

 

  Ex) 올바른 괄호 

  - 괄호가 올바르게 입력되는지 확인

  - s.toCharArray(): String s를 char [] 배열로 바꾼다.

java
열기

 

  Ex) 기능 개발 

  - 순서대로 입력받아 처리하므로 Queue를 이용한다.

    -> 각 작업이 앞으로 며칠 더 걸리는지 구해서 daysQueue에 넣는다.

  - int d = (100 - progresses[i] + speeds[i] - 1) / speeds[i]; 

     -> 나누는 수보다 1작은 수(speeds[i] - 1)를 분자에 더해주면 기존 값( (100 - progresses[i]) /  speeds[i]  ) 을 올림한 상태로 계산할 수 있다.

    -> 그러면 Math.ceil()과 같은 결과가 나온다. 

  - 마지막에 cnt를 꼭 넣어줘야한다. 

java
열기

 

 

  Ex) 주식 가격

  - 초 단위로 기록된 주식 가격이 담긴 배열 prices가 매개변수로 주어질 때,

  - 가격이 떨어지지않은 기간은 몇 초인지 return하는 함수를 만든다.

  - j는 i+1부터 비교한다.

  - 가격이 작아지면 반복문 break

java
열기

 

 

  Ex) 프린터: 중요한 문서를 먼저 인쇄한다. 이 때, 맨 앞의 문서는 뒤로 밀려난다.

java
열기

 

 

 

출처: https://programmers.co.kr/learn/courses/13577

 

[Java] 어서와! 자료구조 알고리즘은 처음이지?

📢실습 문제 풀이 영상 추가 오픈 안내 파트별 실습 문제에 대한 풀이 영상 강의가 모두 공개 되었습니다. 학습에 참고 부탁드립니다. [Java] 어서와, 자료구조와 알고리즘은 처음이지? 핵심 포인

programmers.co.kr

 

'자료구조와 알고리듬 With Java > [프로그래머스] Algorithm' 카테고리의 다른 글

Part 07 정렬 (Sort)  (0) 2022.03.24
Part 06 선형탐색 (Linear Search)  (0) 2022.03.23
Part 04 집합 (Set)  (0) 2022.03.22
Part 03 Map  (0) 2022.03.22
Part 02 Array와 List  (0) 2022.03.21