본문 바로가기

알고리즘

[210916] 백준 5397번 문제 풀이 / 키로거 문제의 핵心 1. 문자열 크기가 최대 1,000,000이므로 시뮬레이션 방식으로는 문제를 해결할 수 없다. 2. 스택을 활용하여 선형시간 문제를 해결할 수 있는 알고리즘을 설계한다. 3. 스택 두 개를 만들고, 스택 두 개의 중간 지점을 커너(Cursor)로 간주한다. 4. 문자 입력 : 왼쪽 스택에 원소를 삽입한다. 5. - 입력 : 왼쪽 스택에서 원소를 삭제한다. 6. 입력 : 오른쪽 스택에서 왼쪽 스택으로 원소를 이동한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; .. 더보기
[210916] 백준 1966번 문제 풀이 / 프린터 큐 문제의 핵心 1. 데이터의 개수(N 0) { StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); LinkedList q = new LinkedList(); st = new StringTokenizer(br.readLine()); for(int i=0; i 더보기
[210916] 백준 1874번 문제 풀이 / 스택 수열 문제의 핵心 1. 스택에 원소를 삽입할 때는, 단순히 특정 수에 도달할 때까지 삽입한다. 2. 스택에서 원소를 연달아 빼낼 때 내림차순을 유지할 수 있는지 확인한다. import java.util.Scanner; import java.util.Stack; public class Q3_1874 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); Stack stack = new Stack(); int N = sc.nextInt(); int count = 1; while(N --> 0) { int value = sc.nextInt(); while(c.. 더보기