누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Room version 올리기
  • 백준 자바 벌집
  • 백준 자바 정렬
  • 코틀린 runBlocking
  • 백준 자바
  • 백준 자바 2292번
  • 코틀린
  • 클라우드
  • Room Migration
  • 안드로이드
  • 안드로이드 디자인
  • 클라우드 컴퓨팅
  • 자바 Priority Queue
  • 백준 자바 2559번
  • 백준 자바 수열
  • 백준 자바 누적합
  • 알고리즘 조합
  • 코틀린 인 액션
  • 백준 자바 다이나믹 프로그래밍
  • 자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

[백준/JAVA] 10989번 수 정렬하기3

2023. 1. 21. 21:09
  • 수의 범위가 작다면 카운팅 정렬을 사용하여 더욱 빠르게 정렬할 수 있습니다.
    https://www.acmicpc.net/problem/10989

1. 문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

2. 문제 접근

1) 수의 개수 N을 입력받는다.
2) N만큼 반복하면서 정수를 입력받고 이때 max 변수를 이용하여 입력받는 정수의 최대값을 저장한다. 입력받은 정수를 배열에 저장한다.
3) 카운팅 정렬을 이용하여 새로운 배열에 값들의 위치에 대한 index를 저장한다.
4) 새로운 배열을 이용하여 입력받은 정수를 출력한다.

 

  • 카운팅 정렬 : 카운팅 정렬은 각 배열 원소끼리 직접 비교하는 것이 아닌, 인덱스를 갖고 위치를 찾아나가는 정렬 알고리즘.

3. 코드

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;

//카운팅 정렬 사용
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int max = 0;
        int arr[] = new int[N];
        StringBuilder sb = new StringBuilder();
        for(int i =0;i<N;i++) {
            arr[i] = Integer.parseInt(br.readLine());
            if(max<arr[i])
                max=arr[i];
        }
        int count[] = new int[max+1];
        for(int i=0;i<N;i++) {
            count[arr[i]]++;
        }
        for(int i=1;i<count.length;i++) {
            count[i] += count[i-1];
        }
        for(int i=1;i<count.length;i++) {
            for(int j=count[i-1];j<count[i];j++) {
                sb.append(i).append("\n");
            }
        }
        System.out.print(sb);
    }
}

'백준 > JAVA' 카테고리의 다른 글

[백준/JAVA] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.02.06
[백준/JAVA] 1427번 소트인사이드  (0) 2023.02.06
[백준/JAVA] 2751번 수 정렬하기2  (0) 2023.01.21
[백준/JAVA] 2750번 수 정렬하기  (0) 2023.01.21
[백준/JAVA] 반복문을 사용하지 않는 2292번 벌집  (0) 2023.01.21
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰
    • [백준/JAVA] 1427번 소트인사이드
    • [백준/JAVA] 2751번 수 정렬하기2
    • [백준/JAVA] 2750번 수 정렬하기
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바