문제풀이64 백준 2042 구간합 JAVA 인풋이 워낙 크다보니 단순한 반복으론 못푸는 문제이다. 구간합을 세그먼트 트리를 이용하여 저장하는 방식이다. 세그먼트 트리는 이진 탐색을 이용해 사전에 트리에 구간의 합을 저장해 놓고 그 구간의 합을 재활용 하는 식으로 구현이 된다. 자세한 구현 방법은 다음 문제에서 자세히 설명하도록 하겠다. package com.company; import java.io.*; import java.util.*; //아래 함수에서 start는 구간의 시작을 의미. end는 구간의 끝을 의미. class SegTree{ long arr[]; long tree[]; SegTree(long[] arr){ this.arr=arr; this.tree=new long[arr.length*4]; } public long init(i.. 2020. 12. 22. 백준 11559번 Puyo Puyo JAVA 문제를 이번에도 잘못 읽었다.. 길어도 찬찬히 읽는 습관을 들이자. package com.company; import java.io.*; import java.util.*; class XY{ int x; int y; XY(int x, int y){ this.x=x; this.y=y; } } public class Main { public static char[][] map; public static boolean[][] visited; public static ArrayDeque deque; public static int answer = 0; public static void printMap(char[][] map){ for(int i=0;i 2020. 12. 2. 백준 14503번 로봇청소기 JAVA 단순한 구현문제이다. 문제의 조건중에 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. 중에 "그 방향으로 회전한 다음 한칸 전진하고" 라는 부분을 빼먹어서 틀렸다.. 문제를 잘 읽자.. package com.company; import java.io.*; import java.util.*; public class Main { static int[] totalPrice; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw =.. 2020. 12. 1. 백준 1717번 집합의 표현 JAVA 시간초과 또는 런타임이 나는 코드. 아마도.. 재귀적으로 자식을 추가하고 루트노드를 찾다보니 생긴 문제인것 같음. package com.company; import java.io.*; import java.lang.reflect.Array; import java.util.*; import java.util.function.IntToDoubleFunction; import java.util.logging.FileHandler; class Node{ int number; Node head; Node child; Node(int number){ this.number=number; head = null; child = null; } int insertChild(Node node){ if(child==null){.. 2020. 11. 30. 이전 1 ··· 7 8 9 10 11 12 13 ··· 16 다음