00:50
# 문제에 있는건 아니지만, 배열 안에서 비교하는 법 알아보기 위해,
예시로 문제 만들어봄
# 모르거나 헷갈렸던 부분
- 큰 숫자가 앞으로 오게 하려면?
정수형 배열에서 [1,3,2,5,4] --> [5,4,3, 2,1] 이렇게 위치 변경해보기
1. for문은 배열의 길이보다 -1만큼 작아야 함(a,b,c,d,e)인 경우 // i < n-1;
첫번째 값 vs 두번째 값
두번째 값 vs 세번째 값
세번째 값 vs 네번째 값
네번째 값 vs 다섯번째 값
이렇게 비교하기 때문에.
2. 값 순서 변경 --- > [ i + 1 ] 의 값이 [ i ] 값보다 크다면, [1,3,2,5,4]
1) i 는 새로운 변수에 담아뒀다가, i+1위치에 다시 넣어주기
2) i+1은 i에 넣어주기
class Solution {
public int[] solution(int[] num_list) {
//만약에 단순히 위치만 바꾸는게 아니라, 값을 비교하면서 가장 내림차순으로 정렬하려면?
//예_ [1,3,2,5,4] --> [5,4,3, 2,1]처럼 바꾸려면?
int n = num_list.length; // 길이 n은 5
for(int i = 0; i < n-1; i++){
for(int j = 0; j < n-1-i; j++){
if(num_list[j+1] > num_list[j]){
int low = 0;
low = num_list[j]; // 1은 low변수에 담아두기
num_list[j] = num_list[j+1]; // num_list[1]인 3을 num_list[0]에 넣기
num_list[j+1] = low; // num_list[i+1] 위치 부분에 기존 num_list[i]였던 1을 넣어주기.
// j=0일 때
//1번째 [3,1,2,5,4]
//2번째 [3,2,1,5,4]
//3번째 [3,2,5,1,4]
//4번째 [3,2,5,4,1]
// j=1일 때
//1번째 [3,2,5,4,1] // 변경 x
//2번째 [3,5,2,4,1] // 5,2변경
//3번째 [3,5,4,2,1] // 2,4 변경
//4번째 [3,5,4,2,1] // 변경 x
}
}
}
return num_list;
}
}
'Coding Test' 카테고리의 다른 글
(SQL > JOIN) : 5일차 없어진 기록 찾기 (0) | 2025.02.09 |
---|---|
(CodingTest) : 4일차 문자열 뒤집기 (3-3) (0) | 2025.02.08 |
(CodingTest) : 4일차 배열 뒤집기 (3-1) (0) | 2025.02.08 |
(SQL > JOIN) : 4일차 상품 별 오프라인 매출 구하기 (0) | 2025.02.08 |
(CodingTest) : 3일차 아이스 아메리카노 (3-3) (0) | 2025.02.07 |