분류 전체보기(63)
-
백준 9095번 1,2,3 더하기
문제 1,2,3 더하기 일단 DP문제라서 DP로 푸려고 노력을 하였다.그렇지만 아직 나에겐 역부족이었다 ㅠㅠㅠ 그래서 다른 블로그를 참고해서 답안을 생각했다. 일단 간단하게 이야기 하자면 1,2,3으로 이루어진 숫자 N의 경우의 수를 보면 f(N) = f(N-3) +f(N-2)+f(N-1)을 하면 구할 수 있다. ( ※f(N) = 숫자 N의 경우의 수이다. )예를 들면 숫자 N=4 라고 한다면 f(4) = f(1)+f(2)+f(3)즉 1,2,3의 경우의 수를 더하면 숫자 4의 경우의 수를 구할 수 있다. 만약 숫자 1,2로만 이루어져 있다면점화식은 f(N) = f(N-2)+f(N-1) 이렇게 될 것이다. 하지만 문제는 1,2,3으로 이루어져있어서 f(N) = f(N-3) +f(N-2)+f(N-1)점화식이..
2017.02.27 -
백준 1991번 트리순회
문제 설명 : 트리를 배열로 표현하였다. 근데 계속 런타임 에러가 나서 고생하였다. 문제는 배열의 크기였다. 트리의 높이(Level)가 N이면 최대 노드 갯수는 이다. 입력이 1 0) {//N만큼 입력 받기 StringTokenizer st = new StringTokenizer(br.readLine().trim()); char data = st.nextToken().charAt(0); for (int i = 1; i
2017.01.25 -
RadixSort 기수 정렬 java
기수 정렬이란? 기수 정렬(radix sort)은 낮은 자리수부터 비교하여 정렬해 간다는 것을 기본 개념으로 하는 정렬 알고리즘이다. 자릿수가 고정되어 있으니, 안정성이 있고(이때 데이터들 간의 상대적 순서는 보존되어야 한다.) 시간 복잡도는 {\displaystyle O(dn)}이다.({\displaystyle d}는 가장 큰 데이터의 자리수)기수 정렬은 비교 연산을 하지 않으며, 무엇보다도 전체 시간 복잡도 역시 {\displaystyle O(dn)}이어서, 정수와 같은 자료의 정렬 속도가 매우 빠르다. 하지만, 데이터 전체 크기에 기수 테이블의 크기만한 메모리가 더 필요하다. 기수 정렬은 정렬 방법의 특수성 때문에, 부동소수점 실수처럼 특수한 비교 연산이 필요한 데이터에는 적용할 수 없지만, 사용 ..
2017.01.06 -
백준 10989 수 정렬하기 3 (java)
일단 문제는 아래 그림과 같다. 와 드디어 풀었다...이거 계속 시관 초과 나가지고 진짜 힘들었는데..ㅠㅠㅠ 시간제한이 5초라서 정말 힘들었다. Counting Sort 써서 푸는 건데 자바는 Scanner로 입출력을 받으면 아예 시간단축하기가 힘들다. (카운팅 소트 참고자료 : http://nhs0912.tistory.com/57 )그래서 사용한 것이 BufferdReader 와 BufferedWriter 이다. 여기서 중요한 것은 BufferedWriter 는 꼭 close()을 해야 출력이 된다. 아마 close() 전까지 계속 대기하는것 같다. 아래는 소스이다. 카운팅 소트에서 누적하진 않고 그냥 바로 출력하였다. 1234567891011121314151617181920212223242526272..
2017.01.02 -
계수 정렬(Counting Sort) java
계수 정렬(Counting Sort) 계수 정렬이란?In computer science, counting sort is an algorithm for sorting a collection of objects according to keys that are small integers; that is, it is an integer sorting algorithm. It operates by counting the number of objects that have each distinct key value, and using arithmetic on those counts to determine the positions of each key value in the output sequence. Its run..
2016.12.27