알고리즘
-
[java] 백준 알고리즘 1260번 DFS와 BFS 풀이알고리즘/백준 알고리즘 2018. 7. 9. 16:49
깊이 우선 탐색, 너비 우선 탐색에 대한 문제였다. 이 개념들은 나도 모르던 개념이라 다른 분들의 블로그를 참고해서 구현하고 공부했다. 참고 블로그: DFS, BFS * 풀이 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576public class Baekjoon1260 { private static boolean[] visited; private static int[][] adjacencyMatrix; private static Queue queue; private static int verte..
-
[java] 백준 알고리즘 1929번 소수 구하기 풀이알고리즘/백준 알고리즘 2018. 7. 4. 17:41
소수를 구할 때 해당 숫자의 제곱근 이상으로 나눌 필요가 없다는 공식을 활용해서 소수 구하기를 구현했다. * 풀이 소스 1234567891011121314151617181920212223242526272829303132333435363738 public class Baekjoon1929 { static StringTokenizer st; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))..
-
[java] 백준 알고리즘 1181번 단어 정렬 풀이알고리즘/백준 알고리즘 2018. 7. 4. 16:54
이 문제를 풀면서 알게 된 유용한 개념은 HashSet은 중복을 허용하지 않는다! 이다. HashSet을 활용하면 출력 조건에서 '같은 단어가 여러번 입력된 경우에는 한번씩만 출력한다'를 만족시킬 수 있다. 그리고 Arrays.sort 기능에 숫자만 배열 가능한게 아니라 문자도 알파벳 순으로 배열하는 기능도 있다. 추가적으로, Comparator 형식으로 로직을 만들어서 비교할 수도 있다. 이들을 활용하면 풀 수 있다. * 풀이 소스 123456789101112131415161718192021222324252627282930313233343536373839 public class Baekjoon1181{ static StringTokenizer st; public static void main(Strin..
-
[java] 백준 알고리즘 1427번 소트인사이드 풀이알고리즘/백준 알고리즘 2018. 7. 4. 16:36
입력되는 값을 배열의 순서로 처리해서 만들면 빠르다. * 풀이 소스 123456789101112131415161718192021222324public class Baekjoon1427{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String inputNumber = br.readLine(); int[] sortArray = new int[10]; for(int i=0; i=0;..
-
[java] 백준 알고리즘 2108번 통계학 풀이알고리즘/백준 알고리즘 2018. 7. 4. 14:49
이 문제가 어려운 건 최빈값 때문이다. 최빈값이 여러개면 두번째 작은 값을 출력하라니... 최빈값을 모아놓고 거기서 또 크기 비교를 해야한다는 것이다. 나머지는 금방 구현했지만, 최빈값을 어떻게 처리할지 고민하는데 시간을 많이 보냈다. 일단 입력할 때부터 양수와 음수를 구분해서 배열을 만들었다. 이때 양수와 음수 배열에 입력값을 순서대로 넣는 것(배열 순서 0번째부터 ~배열의 최대 크기-1까지)이 아니라, 입력값이 배열 순서가 되도록 만들었다.(입력값이 10이라면 배열[10]가 +1이 되는 식)(오름차순을 쉽게 만드는 원리) 그리고 나머지는 소스에 주석을 참고하면 되겠다! * 풀이 소스 123456789101112131415161718192021222324252627282930313233343536373..
-
[java] 백준 알고리즘 2751번 수 정렬하기2 풀이알고리즘/백준 알고리즘 2018. 6. 26. 15:47
힙정렬을 이용해서 풀었다. 힙정렬의 개념을 처음봐서 위키피디아와 다른 분들의 소스를 참고해서 풀었다. 위키피디아 링크: 힙정렬 힙정렬에 대해 정리를 잘해둔 블로그(그림 많아서 좋았음): 링크 공부가 돼서 좋았던 문제. 위의 링크에 파이썬으로 구현된 코드를 자바로 옮기듯이 구현했기 때문에 문제풀이는 링크 설명을 보는게 더 유용할 듯 싶다. * 풀이 소스 public class baekjoon2751 { static StringTokenizer st; static int[] heapSort; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S..
-
[java] 백준 알고리즘 1966번 프린터 큐 풀이알고리즘/백준 알고리즘 2018. 6. 25. 13:32
단순히 큐를 이용하는 것에서 부가적으로 중요한 것부터 출력해내야 하는 것이 문제의 핵심이다. * 풀이 소스 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556public class Baekjoon1966 { static StringTokenizer st; static Queue importance; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = n..