2021/09

sb.apppend로 안하고 계산하기 편하게 뒤에 3개씩 하려고 sb.insert(0, [ ])로 했더니 시간 10배정도 늘어났음 무조건 append로 해서 앞에서부터 처리해줘야함 가장 앞에 부분이 1자리일수도 있고 2자리일수도 있으므로 (앞에 부분이 3자리일 경우는 for문에 묶이는 경우이다) 이 부분만 예외 처리하고 for문으로 처리함 Line:25 for(int i=len%3; i
보통 N개의 문자열이 들어오면 입력 방식이 첫번째 라인에 int N을 받는 구조로 되어야 하는데 이건 그런게 없어서 trigger를 임의로 지정해줘야함 참고 : https://stackoverflow.com/questions/14581205/bufferedreader-readline-waits-for-input-from-console String line; while ((line = br.readLine()) != null){ ...... } 로 해도 되고 밑에처럼 해도 되고 int a;while ( (a=10) !=null){ } 이거는 에러남.. 왜지 ㅠ 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 3..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import 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 Buffer..
시간 단축 가능함 밑에 2번째 코드의 Line:18 부분에서 시간이 많이 소요되는 것으로 보임.. (Line:18에서 이미 퀸을 놓은 좌표의 [같은 열, 슬래시, 백슬래시]에 속한 부분인지 첫번째부터 계속 탐색하고 있고 거리의 절대값도 매번 구해서 시간이 오래 걸리는 것 같음) 열에 속한다 또는 대각선(슬래시, 백슬래시에 속한다)를 boolean으로 체크해줘야함 규칙이 있었음 (솔직히 코딩테스트 같은 곳에서 풀라고 하면 첫번째 방법으로는 절대 못풀듯.. 2번째 방식이 n_queen 이해하는데 입문하기도 쉽고 짜기도 편함 근데 시간은 2배 더 걸림) 참고 : https://herong.tistory.com/entry/BOJ-9663-N-Queen-Java 참고 링크 2번째 코드의 column, slash,..
속도는 StringTokenizer가 더 빠르지만 토큰을 순차적으로 사용하기 때문에 index를 통해 바로 접근하는 것은 불가능하다 그러한 경우에는 split() 사용하면 된다 재귀를 사용해서 DFS 백트래킹이 뭐가 다르나 싶었는데 DFS의 목적은 깊이 우선 탐색을 활용하여 '모든 노드에 접근하는 것'이 목적이고 백트래킹의 목적은 '불필요한 탐색은 하지 않으면서 조건에 만족하는 경우의 수를 찾는 것이 목적'이다. 가보고 후보해가 될 수 없으면 다음 단계로 진행하지 않고 되돌아 나온다. 이전 단계로 돌아와 다른 후보해를 탐색해 나가는 방법 참고 : https://gamedevlog.tistory.com/49
#2 풀긴 풀었는데 조건식을 깔끔하게 쓸 수도 있는건데 더럽게 풀었다.. 깔끔한 조건문을 찾는 것은 어떤 식으로 해야하는걸까? 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 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public..
참고 : https://mizzo-dev.tistory.com/entry/baekjoon5525 IOI를 단위로 하여 누적을 시키고.. 이 값이 계속 누적되는지 혹은 누적이 끊겨서 0이 되는지 변화를 살피고 그것을 체크하여 res값을 계산함 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 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import jav..
그냥 배열로 해도 되는 거였음.. 인덱스 0을 A로 25를 Z로 해서 풀면됨 홀수는 A~Z의 대문자 중 단 1개만 있어야함 이 기믹만 알면 어떻게든 풀림 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 57 58 59 60 61 62 63 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import j..
시간 단축하려면 StringBuilder메소드 말고 배열로 하면 됨 문제는 유사회문인데 단 1개의 문자만 없엘 수 있으므로.. 문자의 왼쪽부분, 오른쪽부분 서로 비교하다가 걸리는 부분을 trigger로해서 왼쪽부분 1개 지우고 비교해보고, 오른쪽부분 1개 지우고 비교해봐서 두개의 문자가 팰린드롬인지 확인해보면됨 즉, 맨 처음에 걸리는 부분이 문제에서 허락해주는 단 1개의 글자이어야함 만일 안쪽에 걸리는 문자가 더 있다면 뒤집어봐서 비교했을 때 서로 문자가 다를 것임 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 ..
시간 단축 List로 완전탐색 -> HashMap으로 Key값을 이용한 탐색 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 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; public class Main {..
배게
'2021/09 글 목록