본문 바로가기

이론/Data Structure , Algorithm12

[210929] 백준 2751번 문제 풀이 / 수 정렬하기 2 문제의 핵心 1. 데이터 개수가 최대 1,000,000개다. 2. 카운팅 정렬을 활용하여 빠르게 정렬한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Q7_2751 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); boolean[] arr = new boole.. 2021. 9. 28.
[210926] 백준 10814번 문제 풀이 / 나이순 정렬 문제의 핵心 1. 나이, 이름의 정보를 입력받은 뒤에 나이를 기준으로 정렬한다. 2. 카운팅 정렬을 활용하여 빠르게 정렬한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q1_10814 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); in.. 2021. 9. 26.
[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; .. 2021. 9. 16.
[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 2021. 9. 16.
[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.. 2021. 9. 16.
[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.. 2021. 9. 15.