본문 바로가기
728x90
반응형

백준/5001 - 1000014

[백준] 6549번 : 히스토그램에서 가장 큰 직사각형 https://www.acmicpc.net/problem/6549 유명한 스택으로 풀리는 문제입니다.스택에 이전 값들을 저장해두면서, (현재 index - 이전 index) * 이전값이 가장 큰 값을 구하는 문제입니다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(.. 2024. 12. 15.
[백준] 8416번 : Czy umiesz potęgować? https://www.acmicpc.net/problem/8416 a^b를 했을 때, 맨 끝자리 수를 구하는 문제입니다. 2의 배수로 생각했을 때 2, 4, 8, 6이 반복되고3의 배수로 생각하면 3, 9, 7, 1이 반복됩니다. 2부터 9까지 모두 생각했을 때, 4개의 수가 반복되므로 b를 4로 나눈 나머지 만큼만 돌면 됩니다.맨 끝자리만 구하면 되니 a도 10으로 나눈 나머지만 곱하면 됩니다. 단, b가 4의 배수인 경우 4로 지정하면 됩니다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { pu.. 2024. 11. 18.
[백준] 9881번 : Ski Course Design https://www.acmicpc.net/problem/9881 1. N개의 수의 최소와 최대를 구한다.2. 각 수와 min, max의 차이를 제곱한 수를 더한다3. Integer.MAX_VALUE와 더한 수의 차이의 최소를 구한다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.par.. 2024. 11. 16.
[백준] 9250번 : 문자열 집합 판별 https://www.acmicpc.net/problem/9250 해당 문제는 N개의 문자들이 Q번 입력받은 문자열들의 부분집합으로 포함되어 있는지 확인하는 문제입니다.Trie와 KMP를 활용한 aho-corasick이라는 알고리즘 통해 해결항 수 있습니다. 트리에 insertvoid insert(String word) { Trie curNode = this; for(int i = 0; i  kmp의 fail함수를 트리형태로public void computeFailFunc() { Queue queue = new LinkedList(); this.fail = this; queue.add(this); while(!queue.isEmpty()) { Trie cur = queue.poll();.. 2024. 10. 13.
728x90
반응형