문제
교재 풀이
import java.util.Scanner;
public class P2750_수정렬하기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = sc.nextInt();
}
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - 1 - i; j++) {
if (A[j] > A[j + 1]) {
int temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
}
}
}
for (int i = 0; i < N; i++) {
System.out.println(A[i]);
}
}
}
설명
그냥 쉬움, 교재만 보고, 버블 정렬 까먹었을 때 훑는 정도로 끝내기
내 풀이) 24.6.6에 풀고 맞음
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException {
//N개의 수가 주어졌을 때, 이를 오름차순으로 정렬
//첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)
//둘째 줄부터 N개의 줄에는 수가 주어진다.
// 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.
// 수는 중복되지 않는다.
//첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력
//
//접근법
// 그냥 sort 함수 쓰면 되는 거 아님?
//슈도코드
// n을 입력받음
// n번 반복해서 수를 받는다.
// 배열 a에 받고
// sc.nextInt를 쓰면 되겠네
// sort한다
// 배열을 하나씩 출력한다
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
Arrays.sort(a);
for(int i=0;i<n;i++){
System.out.println(a[i]);
}
}
}
그냥 sort() 함수 쓰면 되는데 버블 정렬을 구현하고 싶으면
sort자리 대신 버블 정렬 구현한 거 넣으면 됨
내 풀이) 24.6.6에 풀고 맞음
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
//Arrays.sort(a); -> 이 부분 버블 정렬로 구현하기?
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
// 앞에 게 더 크면 스왑하면 되지
if(a[j]>a[j+1]){
swap(a,j,j+1);
}else{
continue;
}
}
}
for(int i=0;i<n;i++){
System.out.println(a[i]);
}
}
//x, y번째 인덱스 원소 순서 바꾸는 함수
private static void swap(int[] a, int x, int y){
int tmp=a[x];
a[x]=a[y];
a[y]=tmp;
}
}
'CODING TEST > BOJ' 카테고리의 다른 글
[java] 문제 018 (백준 11399) (0) | 2024.06.09 |
---|---|
[java] 문제 016 (백준 1377) (0) | 2024.06.06 |
[java] 문제 014 (백준 11286) (0) | 2024.06.06 |
[java] 문제 013 (백준 2164) (0) | 2024.06.06 |
[java] 문제 012 (백준 17298) (0) | 2024.06.04 |