string 6

[JAVA] DFS/BFS "단어변환"

단어는 charAt메소드를 이용해서 String에서 글자를 각각 비교할 수 있다. public class WordConversion { int answer; //최소 단계 boolean[] used; //단어를 사용 중인지를 판단하는 visited와 같은 역할을 하는 배열 public int solution(String begin, String target, String[] words) { answer = 51; //단어 최대값이 50이므로 used = new boolean[words.length]; dfs(begin, target, 0, words); return answer == 51 ? 0 : answer; //answer이 51이면 target과 같은 단어가 없는 것으로 판단. } public v..

[JAVA] 탐욕법(Greedy) "큰 수 만들기"

값을 구하는 방식에 대해서 아이디어를 생각해내는 것이 어려워서 다른 이들의 코드를 참고했다. String에 저장된 숫자를 int값으로 추출해내는 테크닉 : .charAt(i)메소드 사용 char 값에서 '0' 을 빼면 int값이 나오는 테크닉 : c - '0' Stack에서 배열처럼 가져오기 : .get(i)메소드 사용 char배열을 String으로 변환하기 : char[] result = new [~]; return new String(result); 위와 같은 테크닉을 배울 수 있었다. class Solution { public String solution(String number, int k) { char[] result = new char[number.length() - k]; Stack stac..

[JAVA] 완전탐색 "소수 찾기"

완전탐색을 이용하여 소수를 찾는 알고리즘이다. 이전에 String을 parseInt하는 부분도 포함되어있는 문제다. 그리고, Permutation순열을 이용하여 수학적으로 재귀탐색을 하는 방식이며, Set을 이용하여 중복 제거를 하는 방식으로 알고리즘을 풀어야 했다. 필자는 Permutation부분을 스스로 구현하기 어려워 다른 이의 코드를 참고하였다. codevang.tistory.com/299?category=827588 import java.util.ArrayList; import java.util.List; import java.util.TreeSet; class Solution { private static TreeSet set = new TreeSet(); private int count; p..

[JAVA] 정렬 "가장 큰 수"

너무 복잡하게 생각하여 문제풀이를 실패했다. 단순하게 Sort에서 Compare 메소드를 오버라이드할때, String o1, o2를 비교하면, o1+o2 와 o2+o1을 Integer로 변환해서 비교하여 정렬하는 방식으로 해야한다. 가장 이해하기 쉬운 코드리뷰이다. import java.util.Arrays; import java.util.Comparator; class Solution { public String solution(int[] numbers) { String[] nums = new String[numbers.length]; for (int i=0; iString으로 변환해준다. 이러한 경우 String값을 많이 사용하는 케이스어서 첫번째 코드보다 두번째 코드에서 9배가량의 속도차이가 났다...