2017/01(3)
-
백준 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