분류 전체보기

시간 단축 가능함 밑에 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 {..
참고 : https://yoon1fe.tistory.com/206 혼자서 못풀음..ㅜㅜ 끝에서부터 input.substring(0,i)를 붙여준 값 StringBuilder.reverse()를 해준다는 개념.. 시간 단축 더 하려면 stringbuilder클래스의 reverse()함수 안쓰고 배열로 처리하면 됨 근데 배열로 하면 헷갈림 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 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExce..
백의 자리 십의 자리 일의 자리 각각 1~9까지 서로 중복되지 않는 값을 for문으로 돌릴 때 어떻게 할 것인가? 사용하는 숫자는 boolean[] used 배열에 숫자값 index에 true로 체크해줌 실수 Line:55 if(one == tenTemp || one== hunTemp ) ball++; if(ten == oneTemp || one== hunTemp ) ball++; if(hun == oneTemp || one== tenTemp ) ball++; -->(수정) if(one == tenTemp || one== hunTemp ) ball++; if(ten == oneTemp || ten== hunTemp ) ball++; if(hun == oneTemp || hun== tenTemp ) bal..
KMP알고리즘을 이해는 하되, 이 밑에 있는거 통째로 구현할 필요 없음 걍 라인마다 뭔 소리하는지 충분히 이해만 하면 됨 이걸 처음부터 끝까지 구현하는 것은 알고리즘을 잘하는 사람이 아니라 차력쇼를 잘하는거임 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 64 65 66 67 68 69 70 71 72 73 import java.io.BufferedReader; import java.io.BufferedWriter; import ja..
배게
'분류 전체보기' 카테고리의 글 목록 (15 Page)