정렬 [Java]

sua·2022년 9월 26일
0
post-thumbnail

2750번 수 정렬하기

문제


풀이

import java.util.Scanner;
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    int[] arr = new int[n];

    for(int i = 0; i < n; i++) {
      arr[i] = sc.nextInt();
    }
    Arrays.sort(arr);

    for(int i = 0; i < n; i++) {
      System.out.println(arr[i]);
    }

    sc.close();
  }
}



2751번 수 정렬하기2

문제


풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        int n = Integer.parseInt(br.readLine());

        ArrayList<Integer> list = new ArrayList<>();
        
        for(int i = 0; i < n; i++) {
            list.add(Integer.parseInt(br.readLine()));
        }
        Collections.sort(list);
        
        for(int a : list) {
            sb.append(a).append('\n');
        }
        System.out.println(sb);
    }
}



10989번 수 정렬하기3

문제


풀이

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

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int n = Integer.parseInt(br.readLine());
		int[] arr = new int[10001];
		
		for(int i = 0; i < n; i++) {
			arr[Integer.parseInt(br.readLine())]++;
		}
		
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < arr[i]; j++) {
				sb.append(i).append('\n');
			}
		}
		System.out.println(sb);
	}
}



25305번 커트라인

문제


풀이

import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int m = sc.nextInt();
        Integer arr[]=new Integer[n];

        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        Arrays.sort(arr, Collections.reverseOrder());
        System.out.println(arr[m - 1]);

        sc.close();
    }
}



2108번 통계학

문제


풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[] arr = new int[8001];

        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        int sum = 0;
        int med = 10000;
        int mod = 10000;

        for(int i = 0; i < n; i++) {
            int a = sc.nextInt();
            sum += a;
            arr[a + 4000]++;

            if(a > max) {
                max = a;
            }
            if(a < min) {
                min = a;
            }
        }

        int cnt = 0;
        int modMax = 0;
        boolean flag = false;

        for(int i = min + 4000; i <= max + 4000; i++) {
            if(arr[i] > 0) {
                if(cnt < (n + 1)/ 2) {
                    cnt += arr[i];
                    med = i - 4000;
                }

                if(modMax < arr[i]) {
                    modMax = arr[i];
                    mod = i - 4000;
                    flag = true;
                } else if(modMax == arr[i] && flag == true) {
                    mod = i - 4000;
                    flag = false;
                }
            }
        }

        System.out.println((int) Math.round((double) sum / n));
        System.out.println(med);
        System.out.println(mod);
        System.out.println(max - min);

        sc.close();
    }
}



1427번 소트인사이드

문제


풀이

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc= new Scanner(System.in);
		
		int a = sc.nextInt();
		ArrayList<Integer> arr = new ArrayList<>();
		
		int rem;
		do {
			rem = a % 10;
			a = a / 10;
			arr.add(rem);
		}
		while (a > 0);

		Collections.sort(arr, Comparator.reverseOrder());
		
		for(int n : arr) {
			System.out.print(n);
		}
        
        sc.close();
	}

}



11650번 좌표 정렬하기

문제


풀이

import java.util.*;

class Point implements Comparable<Point> {
    public int x, y;
    
    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
    @Override
    public int compareTo(Point o) {
        if(this.x == o.x) {
            return this.y - o.y;
        } 
        return this.x - o.x;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        ArrayList<Point> arr = new ArrayList<Point>();
        
        for(int i = 0; i < n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            arr.add(new Point(x, y));
        }
        Collections.sort(arr);
        
        for(Point p : arr) {
            System.out.println(p.x + " " + p.y);
        }

        sc.close();
    }
}



11651번 좌표 정렬하기2

문제


풀이

import java.util.*;

class Point implements Comparable<Point> {
    public int x, y;
    
    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
    @Override
    public int compareTo(Point o) {
        if(this.y == o.y) {
            return this.x - o.x;
        } 
        return this.y - o.y;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        ArrayList<Point> arr = new ArrayList<Point>();
        
        for(int i = 0; i < n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            arr.add(new Point(x, y));
        }
        Collections.sort(arr);
        
        for(Point p : arr) {
            System.out.println(p.x + " " + p.y);
        }

        sc.close();
    }
}



1181번 단어 정렬

문제


풀이

import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
 
		int n = sc.nextInt();
		String[] arr = new String[n];
 		sc.nextLine();	
 
		for (int i = 0; i < n; i++) {
			arr[i] = sc.nextLine();
		}
		
		Arrays.sort(arr, new Comparator<String>() {
			public int compare(String s1, String s2) {
				if (s1.length() == s2.length()) {
					return s1.compareTo(s2);
				} else {
					return s1.length() - s2.length();
				}
			}
		});
		System.out.println(arr[0]);
		
		for (int i = 1; i < n; i++) {
			if (!arr[i].equals(arr[i - 1])) {
				System.out.println(arr[i]);
			}
		}
        
        sc.close();
	}
}



10814번 나이순 정렬

문제


풀이

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        Map<Integer, String> map = new HashMap<>();
        String[][] arr = new String[n][2];
        
        for (int i = 0; i < n ; i++) {
            arr[i][0] = sc.next();
            arr[i][1] = sc.next();
        }
        
        Arrays.sort(arr, new Comparator<String[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                return Integer.compare(Integer.parseInt(o1[0]), Integer.parseInt(o2[0]));
            }
        });

        for (int i = 0; i < n ; i++) {
            System.out.println(arr[i][0] +" " + arr[i][1]);
        }

        sc.close();
    }
}



18870번 좌표 압축

문제


풀이

import java.util.*;
 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		
		int[] arr = new int[n];	
		int[] sarr = new int[n];
		HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
 
		for(int i = 0; i < n; i++) {
			sarr[i] = arr[i] = sc.nextInt();
		}
		Arrays.sort(sarr);
	
		int r = 0;
		for(int a : sarr) {
			if(!map.containsKey(a)) {
				map.put(a, r);
				r++;
			}
		}
		
		StringBuilder sb = new StringBuilder();
		for(int a : arr) {
			int rank = map.get(a);	
			sb.append(rank).append(' ');
		}
		System.out.println(sb);
		
        sc.close();
	}
}
profile
가보자고

0개의 댓글