목록분류 전체보기 (150)
forDevLife
External lib 내의 maven repository에서 jstl_1_2.jar 파일을 복사해서 WEB-INF -> lib(새로 만듦)으로 copy하면 해결된다.
플로이드 워셜로 풀었다. i -> j를 먼저 입력 받았고, k를 거쳐서 갈 경우를 반영하여 최소 거리를 계산할 수 있다. 1->1은 다시 돌아오는 경우이므로, i->j && j->k 경로가 둘 다 1일 경우 i->j는 있는 경로가 되게 된다. 플로이드 워셜 참고 : https://m.blog.naver.com/PostView.nhn?blogId=ndb796&logNo=221234427842&proxyReferer=https:%2F%2Fwww.google.com%2F import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { pu..
island의 DFS와 매우 유사하다. 다만 DFS안에서 value를 0으로 바꾸는 과정에서 바꾼 횟수를 세어 arraylist에 넣는게 추가되었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; static int[][] arr; static int N; static ArrayList arrayList = new ArrayList(); static int temp = 1; public static ..
전형적인 BFS 문제이다. 표의 입력이 일반적인 1 0 1 1이 아닌 1011로 들어오는데, String.split("")을 이용해 분리하고 Integer.parstInt로 하는 것보단, String.charAt() - '0'을 통해 바로 int로 넣어버리는게 훨씬 빠르다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } } public class Main { static int[] dx = {-1, 0, ..
Priority Queue를 활용한 BFS => 다익스트라 방식으로 풀었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Comparator; import java.util.PriorityQueue; import java.util.StringTokenizer; class Point { int x; int y; int val; public Point(int x, int y, int val) { this.x = x; this.y = y; this.val = val; } } public class Solution { static int[] dx = {-1, 0..
내부 처리가 좀 복잡하다. import org.junit.Test; public class Solution { public int solution(String s) { int answer = Integer.MAX_VALUE; int repeat = s.length() / 2; int L = s.length(); if(s.length() == 1) { return answer = 1; } for(int i=0; i= size) { String tmp2 = s.substring(idx, idx + size); if(tmp1.equals(tmp2)) { cnt++; continue; } //앞과 다를 경우, if(cnt > 1) { sb.append(cnt).append(tmp1); cnt = 1; tmp1 ..
String 분리에 대해서 더 깊게 공부하자. import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; public class Solution { public int[] solution(String s) { int[] answer = { }; String[] arr = s.substring(2, s.length() - 2).split("},\\{"); Arrays.sort(arr, new Comparator() { @Override public int compare(String o1, String o2) { return o1.length() - o2.length(); } })..
앞의 작업이 다 끝나지 않으면 뒤로 넘어가지 않는 방식이다. for문에서 index를 초기값으로만 계속 해놔서 무한 while에 걸려 오래걸렸다; 암튼 프로그래머스 방식으로 arr에 넣기 위해, arrayList to array를 기억하자. import org.junit.Test; import java.util.ArrayList; public class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer; int[] copy = progresses; int L = progresses.length; int idx = 0; ArrayList arr = new ArrayList(); while(idx < L) { int..
1. 블록과 인라인 HTML의 모든 요소는 해당 요소가 웹 브라우저에 어떻게 보이는가를 결정짓는 display 속성을 가진다. 대부분 HTML요소는 이러한 display 속성값으로 다음 두 가지 중 하나를 가지게 된다 -> 블록, 인라인 1) 블록 : 언제나 새로운 라인에서 시작하며, 해당 라인의 모든 너비를 차지한다. * , , , , , 요소는 모두 속성이 블록이다. 요소 다른 HTML 요소를 하나로 묶는 데 자주 사용되는 대표적인 블록 요소이다. 주로 여러 요소들의 스타일을 한 번에 적용하기 위해 사용된다. 2) 인라인 : 새로운 라인에서 시작하지 않는다. 또한 요소의 너비도 해당 라인 전체가 아닌 해당 HTML 요소의 내용(Content) 만큼만 차지 * , , 요소 등이 있다. : 텍스트의 특정..
매우 간단한데,, 너무 복잡하게 풀어서 시간초과. 다시 풀었다. - 닉네임은 계속 바뀌기 때문에 굳이 Enter, Change에서 기존 결과값을 계속 변경해줄 필요 없다. - 다만 닉네임은 key-value 형태로 map에 저장, - 마지막에 String[] answer로 옮기는 과정에서 최종 value를 기준으로 String을 만들어 넣어주기만 하면 된다. + 아래 코드로, arrayList to array가 가능하다. answer = arrayList.toArray(new String[arrayList.size()]); import org.junit.Test; import java.util.ArrayList; import java.util.HashMap; public class Solution { c..