본문 바로가기

백준

[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] 백준 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.. 더보기
[210915] 백준 2798번 문제 풀이 / 블랙잭 문제의 핵心 1. 카드 중 3개씩 뽑는 모든 경우의 수 = n(n-1)(n-2) / 3! (팩토리얼) ex) C(5,3) = 5 x 4 x 3 / 3 x 2 x 1 = 10 2. 삼중 반복문을 통해 모든 경우의 수를 확인하기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; public class Q2_2798 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead.. 더보기
[210915] 백준 2920번 문제 풀이 / 음계 문제의 핵心 1. 리스트에서의 원소를 차례대로 비교하기 2. 비교시, 두 원소를 기준으로 오름차순/ 내림차순 여부 체크하기 초기상태 1. 오름차순 : true 2. 내림차순 : true => 반복문이 끝날 때, 오름차순 및 내림차순이 모두 false로 값이 바뀌어있다면 "mixed"를 출력 import java.util.Scanner; public class Q1_2920 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] inputs = new int[8]; for (int i = 0; i 더보기