diff --git "a/0224LJH/202510/31 BOJ \353\213\244\354\235\264\354\226\264\355\212\270.md" "b/0224LJH/202510/31 BOJ \353\213\244\354\235\264\354\226\264\355\212\270.md" new file mode 100644 index 00000000..3ee364cf --- /dev/null +++ "b/0224LJH/202510/31 BOJ \353\213\244\354\235\264\354\226\264\355\212\270.md" @@ -0,0 +1,56 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; + +public class Main { + + static long diff; + static StringBuilder sb = new StringBuilder(); + + + public static void main(String[] args) throws IOException { + init(); + process(); + print(); + } + + private static void init() throws IOException{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in));; + diff = Integer.parseInt(br.readLine()); + } + + private static void process() { + + long pre =1l; + boolean isEmpty = true; + for (long i = 2; i <= 500000; i++) { + long num = i*i; + if (num - pre > diff) break; + pre = num; + + long target = num - diff; + if (target == 0) continue; + long sqrt = (long) Math.sqrt(target); + if (sqrt*sqrt != target) continue; + isEmpty = false; + sb.append(i).append("\n"); + + + + } + + if(isEmpty)sb.append("-1"); + + } + + + + private static void print() { + System.out.println(sb.toString()); + } +} + + +``` diff --git "a/0224LJH/202511/03 PGM \353\222\244\354\227\220 \354\236\210\353\212\224 \355\201\260 \354\210\230 \354\260\276\352\270\260.md" "b/0224LJH/202511/03 PGM \353\222\244\354\227\220 \354\236\210\353\212\224 \355\201\260 \354\210\230 \354\260\276\352\270\260.md" new file mode 100644 index 00000000..6daefe88 --- /dev/null +++ "b/0224LJH/202511/03 PGM \353\222\244\354\227\220 \354\236\210\353\212\224 \355\201\260 \354\210\230 \354\260\276\352\270\260.md" @@ -0,0 +1,30 @@ +```java +import java.io.*; +import java.util.*; + +class Solution { + public int[] solution(int[] numbers) { + int n = numbers.length; + int[] answer = new int[n]; + Stack stack = new Stack<>(); + + for (int i = n - 1; i >= 0; i--) { + // 현재 원소보다 작거나 같은 스택의 원소들을 제거 + while (!stack.isEmpty() && stack.peek() <= numbers[i]) { + stack.pop(); + } + + if (stack.isEmpty()) { + answer[i] = -1; + } else { + // 스택의 맨 위가 뒷 큰수 + answer[i] = stack.peek(); + } + + stack.push(numbers[i]); + } + + return answer; + } +} +```