알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://level.goorm.io/exam/43243/bubble-sort/quiz/1
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
Think🤔
알고리즘을 풀면서 버블 정렬은 필수라고 생각한다!
일단 첫번째 input에서 몇 개의 자연수를 받을지 값을 정한다.
그리고 두번째 라인에서 input값 만큼 자연수를 입력한다.
그리고 Bubble Sort를 이용해서 정렬 해서 출력한다.
두번째 라인에서는 띄어쓰기로 값을 받는다.
Solution✍
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String inputNum = br.readLine();
String[] str = inputNum.split(" ");
int[] arr = new int[str.length];
for(int i=0; i<arr.length; i++){
arr[i] = Integer.parseInt(str[i]);
}
int tmp = 0;
for(int i=0; i<arr.length; i++){
for(int j=i+1; j<arr.length; j++){
if(arr[i] > arr[j]){
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
}
import java.io.*;
class Main {
public static void swap(int[] a, int i , int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String inputNum = br.readLine();
String[] str = inputNum.split(" ");
int[] arr = new int[str.length];
for(int i=0; i<arr.length; i++){
arr[i] = Integer.parseInt(str[i]);
}
for(int i=0; i<arr.length; i++){
for(int j=i+1; j<arr.length; j++){
if(arr[i] > arr[j]){
swap(arr, i, j);
}
}
}
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
}
swap 메서드를 만들어서 활용
Review🤩
버블 정렬의 장점
1. 추가적인 메모리 소비가 적음
2. 구현이 쉽다.
단점
다를 정렬 알고리즘에 비해 과정이 많아 시간을 소비함
'Algorithm' 카테고리의 다른 글
[구름] 소수 판별 (0) | 2021.12.25 |
---|---|
[구름] Substring (0) | 2021.12.25 |
[구름] 369 게임 (0) | 2021.12.25 |
[구름] 시험성적 평균과 등급 구하기 (0) | 2021.12.25 |
[구름] 약수 구하기 (0) | 2021.12.25 |