◎ 다른 문제 풀이
[알고리즘] 정렬 문제 풀이(백준 10817번, 11399번)
◎ 다른 문제 풀이 [알고리즘] 정렬 문제 풀이(백준 2750번, 2751번, 10989번) (tistory.com) [알고리즘] 정렬 문제 풀이(백준 2750번, 2751번, 10989번) 1. 수 정렬하기(백준 2750번) 2750번: 수 정렬하기 (acmicpc.net)
bobo12.tistory.com
[알고리즘] 정렬 문제 풀이(백준 1181번, 1920번, 1427번)
1. 단어 정렬(백준 1181번 문제) 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가
bobo12.tistory.com
1. 수 정렬하기(백준 2750번)
2750번: 수 정렬하기
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
▷ 풀이 코드
1. 버블 정렬
import java.util.Scanner; public class numSort2 { 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(); } for(int i=0; i<n; i++) { int temp = 0; for(int j=i; j<n; j++) { if(arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for(int i=0; i<n; i++) { System.out.println(arr[i]); } } }
2. 선택 정렬
import java.util.Scanner; public class numSort3 { 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(); } for(int i=0; i<arr.length-1; i++) { int min = i; for(int j=i+1; j<arr.length; j++) { if(arr[min] > arr[j]) { min = j; } } int temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } for(int i=0; i<n; i++) { System.out.println(arr[i]); } } }
3. 삽입 정렬
import java.util.Scanner; public class numSort4 { 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(); } for(int i=0; i<arr.length-1; i++) { int min = arr[i]; int num = 0; for(int j=i+1; j<arr.length; j++) { if(min > arr[j]) { min = arr[j]; num = j; } } for(int j=num; j>i; j--) { arr[j] = arr[j-1]; } arr[i] = min; } for(int i=0; i<n; i++) { System.out.println(arr[i]); } } }
2. 수 정렬하기 2(백준 2751번)
로그인
www.acmicpc.net
▷ 풀이 코드(퀵 정렬)
import java.util.Scanner; import java.util.ArrayList; import java.util.Collections; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int N = in.nextInt(); // list 계열 중 하나를 쓰면 된다. ArrayList<Integer> list = new ArrayList<>(); for(int i = 0; i < N; i++) { list.add(in.nextInt()); } Collections.sort(list); for(int value : list) { sb.append(value).append('\n'); } System.out.println(sb); } }
3. 수 정렬하기 3(백준 10989번)
10989번: 수 정렬하기 3 (acmicpc.net)
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
▷ 풀이 코드(퀵 정렬)
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.Arrays; 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()); int[] arr = new int[N]; for(int i = 0; i < N; i++){ arr[i] = Integer.parseInt(br.readLine()); } Arrays.sort(arr); for(int i = 0; i < N; i++){ sb.append(arr[i]).append('\n'); } System.out.println(sb); } }
이번에는 알고리즘 스터디를 통해 배운 정렬을 통해 백준 문제 풀이를 해보았습니다!!
여러 정렬들을 사용해서 풀이할 수 있고 sort를 이용하면 더욱더 빠르게 정렬이 되네요!!
다른 정렬 문제들도 풀어볼게요~
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

'문제풀기 > 알고리즘 스터디' 카테고리의 다른 글
[알고리즘] 정렬 문제 풀이(백준 11650번, 10814번) (0) | 2023.06.15 |
---|---|
[알고리즘] 정렬 문제 풀이(백준 1181번, 1920번, 1427번) (0) | 2023.06.06 |
[알고리즘] 정렬 문제 풀이(백준 10817번, 11399번) (0) | 2023.06.05 |
[알고리즘] 재귀 문제 풀이(백준 27433번, 10870번, 25501번) (0) | 2023.05.14 |
[알고리즘] Queue 문제 풀이(백준 10773번, 10828번) (0) | 2023.05.07 |