큐3 [백준] 3078: 좋은 친구 - JAVA https://www.acmicpc.net/problem/3078 풀이학생의 이름이 등수 순으로 주어진다. 등수가 k를 넘지 않으면서 이름의 길이가 같으면 좋은 친구이다. 좋은 친구의 쌍을 구해야 한다. 처음에는 단순히 큐를 사용하면 되는 문제인 것 같았다. 하지만 메모리초과... 어떻게 푸는지 방법을 찾아보았다. 이름의 길이가 2~20이므로 길이 20의 큐 배열을 선언한다. 입력받은 문자열의 길이를 len이라고 한다면, 큐 배열의 len 인덱스에 들어있는 값이 해당 번호와 자신의 번호의 차가 k보다 크다면 poll 해준다. poll 해준 뒤 남아있는 개수를 정답에 더해준다. 그 후 같은 인덱스에 자신의 등수를 넣어주면 된다. 메모리: 47332KB시간: 368ms언어: Java 11import jav.. 2024. 5. 19. [자료구조] 스택 & 큐 스택Stack 클래스에서 구현된 메서드는 다음과 같다. - `E push(E item)`: 스택의 맨 위에 요소를 추가한다. - `E pop()`: 스택의 맨 위 요소를 제거하고 제거된 요소를 반환한다. - `E peek()`: 스택의 맨 위 요소를 제거하지 않고 반환한다. - `boolean empty()`: 현재 스택에 요소가 존재하지 않을 경우 `true`, 그 외의 경우 `false`를 반환한다. - `int search(Object o)`: 스택의 상단부터 탐색하여 지정된 객체가 있는 요소의 위치를 반환한다. 없을 경우 `-1`을 반환한다. 스택은 먼저 들어온 데이터가 마지막에 나가는 구조이다. 페이지 뒤로가기, 실행 취소, 수식 괄호검사 등에서 응용된다. Stack 클래스는 .. 2024. 5. 18. [백준] 13335: 트럭 - JAVA https://www.acmicpc.net/problem/13335 풀이n개의 트럭이 길지 w의 다리를 건너는데 1을 가는데 1의 시간이 소요되고 다리가 견딜 수 있는 무게는 L이다. 다리 위에 L넘게 올라갈 수없다. 먼저 간 트럭이 다리를 벗어날 때까지 기다려야한다. 큐에 다리위에 있는 트럭들을 저장하고 sum에 트럭의 무게를 더해줬다. 큐에 넣을 때 다리를 벗어나는 시간까지 같이 넣어주었다. 시간을 늘리면서 큐의 맨 앞에 있는 트럭이 다리를 벗어날 시간이라면 큐에서 삭제, sum에서 무게를 빼주었다. `sum + 다음에 들어올 트럭의 무게`가 L보다 작거나 같으면 큐에 트럭을 넣어주었다. 메모리: 14444KB시간: 136ms언어: Java 11import java.util.*;import java.. 2024. 5. 17. 이전 1 다음