2021/09

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static Buffere..
세 번째 줄에 질문의 개수 Q(1 ≤ Q ≤ 100,000)이 주어진다. 수행시간 반절로 줄이기 System.out.println(..); -> bw.write(sBuilder); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io..
누적합 기믹만 알면 ㅈㄴ쉬움 진짜.. 모든 알고리즘이 그러하듯.. 파훼법을 아니까 왜 이런게 어렵게 느껴졌나 싶음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main {..
시간단축 Line: 41 sysout -> bw.write( ) or StringBuilder 혼자 진짜 끙끙 오래 앓은 문제임..ㅠㅠ 누적합이라는 개념은 이해했는데 이걸 연속으로 넣는 문제들 기믹을 이해를 못했음.. 브루트포스로는 당연히 절대 안되고 선형으로 해결해야함 Line:33 이게 핵심임 accumK[a] += k; accumK[b+1] -= k; a부터 b까지 k만큼의 흙을 덮거나 파야한다는 의미임.. 기울기라고 생각하니까 이해가 편했음 a에서 b까지는 k라는 기울기가 유지되어야 한다는 것임 물론 조교의 지시가 M개 들어오니까 임의의 값 x가 있을 때, accum[x] = k1+k2+k3+.. +km일 것임 그것을 accum이라는 변수를 사용하여 선형으로 작업하는 부분에서 계속 갱신해주면됨 참..
문제가.. 누적합인데 누적합 배열을 만들어서 풀면 안됨.. 오버플로우 나는듯.. 그래서 런타임에러(ArrayIndexOutOfBounds)나는 것 같음 배열의 index가 음수여서는 안되니까 string배열로 하면 안되고 stringTokenizer로 해야되고 파훼법 기믹도 알아야 하고 long int실수도 안해야 한번에 해결 가능했었을듯 런타임 에러 (ArrayIndexOutOfBounds) Java는 정수를 배열의 인덱스로 사용하며 JVM의 최대 정수 저장소는 2 ^ 32입니다. 따라서 배열에 2,147,483,647 개의 요소를 저장할 수 있습니다. 이거 런타임 에러 나는 이유가 애초에 preSum을 계속 누적시켜주면 안됨 무조건 Integet.MAX_VALUE 초과함계속 %M으로 나머지를 이용해서..
수행 시간 낮춰주려면 Line:30부분의 출력 부분을 (X) for(i=1; i
12345678910111213141516171819202122232425262728293031323334353637import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter; public class Main { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static BufferedWriter bw = new BufferedWriter(new OutputStrea..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.StringTokenizer; public class Main { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private stat..
스스로 해결하지는 못하고 문제의 질문검색 탭을 뒤져서 반례등을 찾아서 해결함 메모리 초과 왜why??? 모든 V를 전부 돌려서.. 그런듯 문제에서 주어진 edge만 탐색해야함 다익스트라 맨 처음 배울 때 for문 뺑뺑이 돌리는 식으로 짜면 틀리게됨 틀렸습니다 왜why?? 반례 : 정점은 1개인데 edge가 없는 정점을 가리키는 경우 1 1 1 1 2 2 Line:44 부분에 간선을 체크할 때 존재하지 않는 정점을 체크하는 경우 continue해줌 또 틀렸습니다.. Line:32 visited[]를 확인할 필요가 없음.. 다익스트라를 https://www.youtube.com/watch?v=QleeV_ipB7w&t=430s 강의를 보고 공부를 했는데 기본적인 개념에 대해 설명해주는 코드라서 모든 1~V에서..
#2 visited배열 안쓰고 map의 값을 toggling 시켜줌 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util...
배게
'2021/09 글 목록 (3 Page)