Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 모든행과열대각선의합
- 점수계산
- 10992
- 두 배열 합치기
- ArrayList
- 코테준비
- 최대 길이
- 가장 짧은 문자거리
- 백준
- 아스키코드
- 등수구하기
- 누적 계산
- java
- array
- 투 포인터
- GitHub #Commit #BaekJoon
- 알고리즘
- 임시반장 정하기
- Two Pointer
- 큰 수 출력하기
- Pointer
- 뒤집은 소수
- 연속부분수열
- 보이는 학생
- 배열
- 인프런
- 자바
- 10991
- 격자판
- 공통원소 구하기
Archives
- Today
- Total
ezhoon
[인프런] 06-01 선택정렬 본문
📖 문제
- 첫 번째 줄에 자연수 N(1 <=N <=100)이 주어집니다.
- 두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위 안에 있습니다.
- N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요.
- 정렬하는 방법은 선택정렬입니다.

⚠️ 주의사항
- 선택 정렬을 사용해야 합니다.
- 오름차순 정렬입니다.
✍️ 이해
/**
* 1. N과 N개의 배열로 이루어진 숫자 입력
* 2. 선택 정렬을 위해서 2중 for문 arr[i] 들어갈 값을 arr[i+1] ~ arr[N] 비교
* 3. 임시 저장 장소로 index = i
* 4. arr[index] > arr[j]
* 4-1. true -> index = j;
* 5. swap 호출 (arr, index, j)
* 6. arr[i] 의 값을 바꿔야 하므로 arr[i] 값을 temp에 임시 저장
* 7. arr[i] = arr[index], arr[index] = arr[temp] 서로 교환
* 8. return arr
*/
✏️ 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public int[] solution(int N, int[] arr){
for (int i = 0; i < N - 1; i++) {
int index = i;
for (int j = i + 1; j < N; j++) {
if (arr[index] > arr[j]) {
index = j;
}
}
swap(arr, index, i);
}
return arr;
}
public void swap(int[] arr, int index, int i) { // i번째 값과 찾은 최솟값을 서로 교환
int tmp = arr[i];
arr[i] = arr[index];
arr[index] = tmp;
}
public static void main(String[] args) throws IOException {
Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
for (int i : T.solution(N, arr)) {
System.out.print(i + " ");
}
}
}
'[Java] 인프런 문제풀이 > Sorting and Searching (정렬, 이분검색과 결정알고리즘)' 카테고리의 다른 글
[인프런] 6-6 장난꾸러기 (0) | 2022.02.05 |
---|---|
[인프런] 06-05 중복확인 (0) | 2022.02.04 |
[인프런] 06-04 LRU 카카오 문제 변형 (0) | 2022.02.04 |
[인프런] 06-03 삽입 정렬 (0) | 2022.02.03 |
[인프런] 6-2 버블정렬 (0) | 2022.02.03 |
Comments