본문 바로가기
728x90
반응형

백준/PS에서의 자바4

메모리 제한 풀기 백준 문제를 풀다보면, "메모리 초과" 일명 "메초"라고 불리는 result를 받을 수 있습니다. 그럴때마다 보통은 "사용하지 않아도 되는 배열 및 메모리 감소"를 하여 "메모리 초과"를 해결합니다. 그러나, 그렇게 해도 되지 않는 몇몇 외국어 문제들이 존재합니다. 그런 경우에는 2가지 방법이 있습니다. 1. System.gc()로 gc를 수동으로 실행하기 System.gc(); System.gc()는 반환이 없는 void로 그냥 선언하시면 됩니다. 이렇게 할 경우, 더 이상 사용하지 않은 메모리들을 수동으로 gc를 실행시켜 제거해 줍니다. (보통은 선언하지 않고 사용해도 JAVA는 자동으로 GC가 처리를 해줍니다.) ※ 주의 : PS에서만 사용하시고, 실제 현업에서는 사용하지 마세요. https://c.. 2023. 2. 9.
int[] 활용하기 bfs나 dfs 등 ArrayList나 Queue에 x좌표, y좌표, 크기, 길이 등 여러 가지 값들을 한번에 넣을 때 보통 class Node{ int x, y, price; } 이런 식으로 사용하게 됩니다. 그러나 매번 문제를 풀 때 적어두기 귀찮고, 입력할 값들의 수가 변경할 때, 또 선언해 줘야 하는 귀찮은 문제가 발생하게 됩니다. 그 때 이 방식을 이용하면 간단하게 문제를 풀 수 있습니다. Queue queue = new LinkedList(); queue.add(new int[] {x, y, 0}); 이럴 경우 queue.poll()을 하게 되면 int[]의 형태로 나오게 되고 int[] now = queue.poll(); int nx = now[0]; int ny = now[1]; int p.. 2022. 1. 7.
[JAVA] PS에서의 Point 자바에서 import java.awt.Point에 대해 검색해 보면 주로 그림그리기 위한 x와 y좌표를 지정해주는 것으로 나오게 됩니다. 그러나 PS에서는 이러한 방식으로 사용할 수 있습니다. 값 2개를 ArrayList나 한곳에 저장하기 위해서는 주로 class를 사용합니다. Class Pont{ int x, y; public Point(int x, int y){ this.x = x; this.y = y; } } 이런식으로 선언한 후 ArrayList arr = new ArrayList(); 사용할 수 있습니다. 이 방식을 awt Point를 이용하면 Point[] arr = new Point[]; 이렇게 바로 선언해서 arr[i] = new Point(x, y); 이런식으로 사용할 수 있습니다. 2021. 11. 1.
[JAVA] 출력 관련(백준) 백준을 자바로 푸시는분들이 주로 시간초과가 나서 질문하는 소스들을 보면 대체로 이렇습니다. for(int i = 0; i < 100; i++){ System.out.println(i); } 이럴경우 1개씩 계속해서 출력을 하게 되어 시간이 오래걸립니다. 시간을 줄여주기 위해 주로 사용하는 것에는 2가지 정도가 있습니다. StringBuilder와 BufferedWriter입니다. StringBuilder는 StringBuilder sb = new StringBuilder(); for(int i = 0; i < 100; i++){ sb.append(i).append("\n"); } System.out.print(sb); BufferedWriter는 BufferedWriter bw = new Buffered.. 2021. 10. 28.
728x90
반응형