2021/09

참고 : 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..
210930 Line : j = 0으로 해서 틀렸음 이거 j = pi[j]로 시작해야함 진짜 기존에 돌았던 부분 뼛속 사골까지 우려서 써먹어야 통과 가능한 문제임 솔직히 혼자서 짤만함 getPi와 KMP가 진짜 비슷하게 생겼음 getPi를 완전히 꿰서 이해하면 KMP까지 이해하는 것이 한층 수월함 KMP알고리즘도 처음 알았고 봐도 풀기 좀 힘든 것 같음 Line:23~25 부분은 좀 더 공부가 필요하고 Line:30은 솔직히 봐도 모르겠음 단어 탐색 알고리즘 중에 KMP알고리즘이 있고 이것을 이용하여 O(N*M) -> O(N+M)으로 시간을 단축시켜줄 수 있다 이정도로만 이해하면 될듯 솔직히 이거 알고리즘 구현하는 짓거리는 좀 오바같음 시간 단축 sysout -> StringBuilder 1 2 3 4 ..
또.. 기믹 알아야 되는 문제 완전탐색은 당연히 안되고 그냥 붙어 있는 두개의 문자들중 앞에 있는 문자가 뒤에 있는 문자의 접두어인지만 확인하면 된다. (문자배열은 오름차순으로 sort된 상태에서) 만약에 1개라도 그런 경우가 존재한다면 반드시 false를 반환할 수 밖에 없음 접두어라는 것은 필연적으로 서로 붙어 있을 수밖에 없음.. 그 두개의 문자 사이에 무언가가 있을 수는 있음 근데 그것 또한 앞뒤가 접두어 관계여야함 반드시 그 사실을 알면 쉬움 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 im..
210924 배열로 하면 시간 더 단축 가능 + stack안쓰고 배열로 풀긴 했는데 result값은 StringBuilder로 했음 result 마저도 StringBuilder로 하지 말고 배열로 하면 시간 더 단축 가능 bombStr 일치할 경우에는 index를 bombStr.length()-1의 값만큼 index를 빼주면 된다.. delete할 필요 없음 참고 : https://www.acmicpc.net/source/33187159 시간초과 Line:41 for (Character character : st) { System.out.println(character); } -> StringBuilder sBuilder = new StringBuilder(); for (Character characte..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546import 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 BufferedWrit..
시간 단축 1. System.out.println 반복문 -> StringBuilder append함수 2. List -> Array 123456789101112131415161718192021222324252627282930313233343536373839404142434445import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Arrays; public class Main { private static BufferedReader br = new Buff..
3의 배수에 해당하는 숫자들의 규칙만 알면 쉬움 (걍 수학임 이 문제는) 내림차순 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 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { private stati..
수들의 합4.. 공식임 이것도.. ㅠㅠ 수학하는 기분 공식 찾으면 풀 수 있고 못찾으면 틀려야되고 S[j] - S[i] = K인 j,i의 쌍들을 구해야 하는데 S[j] = K인 경우는 그냥 더해주고 S[j] != K인 경우는 S[j] - S[i] = K가 성립할 수 있는 S[i]값인 S[i] = S[j] - K를 기존에 저장해두었던 map의 값에서 꺼내서 더해줌 그리고 현재의 S[j]의 값을 map에 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 4..
배게
'2021/09 글 목록 (2 Page)