알고리즘/백준 알고리즘
-
[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..
-
[java] 백준 알고리즘 2448번 별찍기-11 풀이알고리즘/백준 알고리즘 2018. 6. 25. 09:38
별들의 규칙을 보면 별이 그려진 현재 높이의 반을 했을 때 별 패턴과 현재 높이의 바닥쪽 별의 패턴이 비슷하다. 높이의 반을 했을 때 별의 패턴을 2배로 하면 현재 높이의 바닥쪽 별 패턴이 같다. 입력되는 수는 바닥의 라인까지라고 보면 된다. 높이의 반을 넘어가는 순간부터는 첫줄부터 높이의 반만큼의 2배 패턴과 같다. 패턴을 그려주면서 이미 그려진 패턴들은 라인수가 아래로 내려가는 만큼 기존의 패턴을 오른쪽으로 밀어주어야 한다. 구현한 소스는 아래와 같다. * 풀이 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849public class Baekjoon2448 { public static v..
-
[java] 백준 알고리즘 2581번 소수 풀이알고리즘/백준 알고리즘 2018. 6. 14. 15:58
등차수열 공식을 이용해 시작하는 수(M)부터 끝나는 수(N)까지 총 합을 구하고, 소수가 아닌 수가 나올때마다 총 합에서 그 숫자를 빼주었다. 소수도 M과 N 사이의 숫자에서 소수가 아닌 값이 나올 때마다 빼주어 총 소수의 숫자를 구했다. * 풀이 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061public class Baekjoon2581{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRe..
-
[java] 백준 알고리즘 1978번 소수 찾기 풀이알고리즘/백준 알고리즘 2018. 6. 14. 15:40
소수가 아닌 경우를 탈락 시켜 나가면서 해결했다. 이 공식을 활용했다. 수가 수를 나누기 위해서는 그 몫이 항상 필요하며 나누는 수와 몫 중 어느 하나는 반드시 {\displaystyle {\sqrt {n}}} 이하이기 때문이다. - 출처: 위키피디아 while문에서 나누는 수가 제곱근 이상이 되면 break를 걸었다. * 풀이 소스 1234567891011121314151617181920212223242526272829303132333435363738public class Baekjoon1978{ static StringTokenizer st; public static void main(String[] args) throws IOException { BufferedReader br = new Buffe..
-
[java] 백준 알고리즘 2750번 수 정렬하기 풀이알고리즘/백준 알고리즘 2018. 6. 14. 15:34
이중배열을 통해 해결했다. 바깥 for문이 아닌 안쪽 for문은 가장 큰 숫자를 가장 오른쪽으로 배열해준다. 그러나, 하나의 가장 큰 숫자를 가장 오른쪽으로 배열한다고 해서 끝나는게 아니라, 이것은 오름차순이기 때문에 오른쪽으로 갈수록 숫자가 커져야한다. 그래서 배열의 크기만큼 바깥 for문을 돌아주면 모든 숫자들을 비교하면서 오른쪽으로 이동하기 때문에 오른차순으로 정렬한다. * 풀이 소스 12345678910111213141516171819202122232425262728293031323334353637public class Baekjoon2750{ public static void main(String[] args) throws NumberFormatException, IOException { Buf..