Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 개발자취업
- 위상정렬
- Algorithm
- sql
- 알고리즘
- DB
- spring
- javascript
- til
- 코딩테스트
- 가상컴퓨팅
- 99클럽
- 코딩테스트준비
- jsp
- 항해99
- 공개키 암호화
- Java
- 크루스칼
- JPA
- 정렬
- dbms
- Sort
- 99클럽 #코딩테스트준비 #개발자취업 #항해99 #til
- 코테
- 자료구조
- generic class
- python
- js
- mysql
- LeetCode
Archives
- Today
- Total
PLOD
[백준] 식당 메뉴(26043) 본문
✅ 코드
package test.silver;
import java.io.*;
import java.util.*;
public class 백준_26043 {
static int n;
static Deque<int[]> queue; // 학생 줄: {학번, 원하는메뉴}
static List<Integer> a; // 원하는 메뉴 먹음
static List<Integer> b; // 원하는 메뉴 못 먹음
static List<Integer> c; // 식사 못 함 (끝까지 줄에 남음)
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
queue = new ArrayDeque<>();
a = new ArrayList<>();
b = new ArrayList<>();
c = new ArrayList<>();
n = Integer.parseInt(br.readLine().trim());
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int type = Integer.parseInt(st.nextToken());
if (type == 1) {
int id = Integer.parseInt(st.nextToken());
int want = Integer.parseInt(st.nextToken());
queue.offer(new int[]{id, want});
} else { // type == 2
int menu = Integer.parseInt(st.nextToken());
int[] student = queue.poll();
// 입력이 항상 유효해서 queue가 비지 않는다고 가정하면 아래 null 체크는 없어도 되지만,
// 안전하게 넣어둠
if (student == null) continue;
if (student[1] == menu) a.add(student[0]);
else b.add(student[0]);
}
}
while (!queue.isEmpty()) c.add(queue.poll()[0]);
printList(a);
printList(b);
printList(c);
br.close();
}
static void printList(List<Integer> list) {
if (list.isEmpty()) {
System.out.println("None");
return;
}
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for (int x : list) sb.append(x).append(' ');
sb.setLength(sb.length() - 1); // 마지막 공백 제거
System.out.println(sb);
}
}
// 187080 1004
💡 배운 점 & 느낀 점
1. StringBuilder sb → 문자열을 쉽게 출력하기 위한 장치
for (int x : list) sb.append(x).append(' '); // 공백 추가 해서 INPUT
sb.setLength(sb.length() - 1); // 마지막 공백 제거
System.out.println(sb); // 출력
2. Collections.sort() → 컬렉션 프레임워크 정렬
Collections.sort(list);
'대외 활동 및 IT 지식 > 알고리즘 문제 풀이 정리' 카테고리의 다른 글
| [백준] 좌표 압축(18870) (0) | 2026.03.09 |
|---|---|
| [백준] 파일 정리(20291) (0) | 2026.03.09 |
| [백준] 큐(10843) (0) | 2026.02.22 |
| [백준] 스택(10828) (0) | 2026.02.22 |
| [백준] 세로읽기(10798) (0) | 2026.02.18 |
Comments