결과 : 실패
[나의 해결 계획]
1. StringBuilder 생성
2. .append() 메서드를 통해 StringBuilder에 넣고, reverse() 메서드를 사용하여 뒤집음.
3. 뒤집은 StringBuilder를 String -> String[] -> int[] 변환하여 리턴.
public class Main {
public static void main(String[] args) {
int[] num_list = {1,2,3,4,5,15};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num_list.length; i++) {
sb.append(num_list[i]);
}
sb.reverse();
System.out.println("sb = " + sb);
String str = sb.toString();
String[] str_arr = str.split("");
int[] answer = new int[str_arr.length-1];
for (int i = 0; i < str_arr.length; i++) {
answer[i] = Integer.parseInt(str_arr[i]);
}
System.out.println(Arrays.toString(answer));
}
}
[문제점]
이렇게하면 2자리 수의 값이 들어가게되면 해결안됨.
[해결책]
1. answer[] 을 대상 배열의 길이 만큼 생성.
2. for 반복문으로 answer[i] = 대상배열[대상배열.length-i-1];로 생성.
public class Main {
public static void main(String[] args) {
int[] num_list = {1,2,3,4,5,15};
int[] answer = new int[num_list.length];
for (int i = 0; i < num_list.length; i++) {
answer[i] = num_list[num_list.length-i-1];
}
System.out.println(Arrays.toString(answer));
}
}
Java에서는 첫번째 배열의 인덱스는 0 이고, 마지막 배열의 인덱스는 length - 1이다.
역방향 배열은 위와 반대로 첫번쨰 인덱스는 length - 1이고, 마지막 인덱스는 0 이다.
역방향 배열 1번째 = 대상의 마지막 인덱스 요소.
인덱스 (0) = 인덱스 (length - 1)
역방향 배열의 마지막번째 = 대상의 첫번째 인덱스 요소.
인덱스(length - 1) = 인덱스 (0)
즉 역방향 배열에서 인덱스 i 를 이용하여 순서를 조절할 수 있다.
'코딩 테스트 공부 일지' 카테고리의 다른 글
#5. 코딩 테스트 - 달리기 경주 (0) | 2023.05.30 |
---|---|
#4. 프로그래머스 - 아이스 아메리카노 (0) | 2023.05.25 |
#3. 프로그래머스 - 삼각형의 완성(1) (0) | 2023.05.25 |
#1. 프로그래머스 - 문자열 뒤집기 (0) | 2023.05.23 |