solution() {
루프 횟수 체크할 check 변수 선언
answer배열 선언
while(check >0) {
for(N-1만큼 반복) {
현재 배열의 index값 보다 한 칸 오른쪽에있는 값이 더 작으면 swap
}
check--;
}
}
main() {
N선언 및 입력받기
intArr선언
for(N만큼 반복) {
수 입력받아 intArr에 넣기
}
solution 결과를 intArr에 넣기
for(N만큼 반복) {
인덱스로 각 원소 출력
}
}
import java.util.Scanner;
public class Main {
public static int[] solution(int N, int[] intArr) {
int[] answer = new int[N];
int check = N;
while(check>0) {
for(int i=0; i<N-1; i++) {
if(intArr[i] > intArr[i+1]) {
int temp = intArr[i+1];
intArr[i+1] = intArr[i];
intArr[i] = temp;
}
}
check--;
}
answer = intArr;
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] intArr = new int[N];
for(int index = 0; index < N ; index++) {
intArr[index] = sc.nextInt();
}
System.out.println(solution(N, intArr));
}
}
처음엔 이처럼 코드를 짰는데, 아래처럼 출력이 이상하게 나왔다.
배열 변수의 이름은 배열의 시작 주소인데, 출력부분에서 저렇게 로직을 짜서 배열의 시작 주소가 출력된것으로 보인다.
solution호출의 리턴값을 따로 받아서, 출력코드에서는 []를 사용해 인덱스로 각 원소에 접근했다.(for문 이용)
import java.util.Scanner;
public class Main {
public static int[] solution(int N, int[] intArr) {
int[] answer = new int[N];
int check = N;
while(check>0) {
for(int i=0; i<N-1; i++) {
if(intArr[i] > intArr[i+1]) {
int temp = intArr[i+1];
intArr[i+1] = intArr[i];
intArr[i] = temp;
}
}
check--;
}
answer = intArr;
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] intArr = new int[N];
for(int index = 0; index < N ; index++) {
intArr[index] = sc.nextInt();
}
intArr = solution(N, intArr);
for(int p=0; p<N; p++) {
System.out.println(intArr[p]);
}
}
}
import java.util.Scanner;
public class Main {
public static int[] solution(int N, int[] intArr) {
int[] answer = new int[N];
int check = N;
for(int i=0; i<N-1; i++) {
for(int j=0; j<N-1-i; j++) {
if(intArr[j] > intArr[j+1]) {
int temp = intArr[j];
intArr[j] = intArr[j+1];
intArr[j+1] = temp;
}
}
}
answer = intArr;
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] intArr = new int[N];
for(int index = 0; index < N ; index++) {
intArr[index] = sc.nextInt();
}
intArr = solution(N, intArr);
for(int p=0; p<N; p++) {
System.out.println(intArr[p]);
}
}
}