마지막 두 원소
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.
매개변수 : num_list
[2,1,6]
[5,2,1,7,5]
반환값 : result
[2,1,6,5]
[5,2,1,7,5,10]
class Solution {
public int[] solution(int[] num_list) {
int listLen = num_list.length;
int[] answer = new int[listLen+1];
int last = num_list[listLen-1];
int secondLast = num_list[listLen-2];
for(int i = 0; i < listLen; i++) {
answer[i] = num_list[i];
}
answer[listLen] = last > secondLast ? last - secondLast : last * 2;
return answer;
}
}
1. 정수리스트에서 마지막 원소와, 마지막 이전 원소의 값을 찾는다.
2. 마지막 원소와 마지막 이전 원소의 크기를 비교한다
2-1. 마지막 원소가 클 경우 : 정수리스트에 '마지막 원소-마지막 이전 원소'를 계산해서 추가한다
2-2. 마지막 이전 원소가 클 경우 : 정수리스트에 '마지막 원소*2'를 계산해서 추가한다
JAVA length / length() / size()
- legnth
- 배열.length
- 배열의 길이
- length()
- 문자열.length()
- 문자열의 길이
- size()
- 컬렉션.size()
- 컬렉션프레임워크 타입의 길이
수열과 구간 쿼리3
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
매개변수 : arr
[0, 1, 2, 3, 4]
매개변수 : queries
[[0, 3],[1, 2],[1, 4]]
반환값 : result
[3, 4, 1, 0, 2]
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = Arrays.copyOf(arr, arr.length);
for(int[] query : queries) {
int i = query[0];
int j = query[1];
int temp = answer[i];
temp = answer[i];
answer[i] = answer[j];
answer[j] = temp;
}
return answer;
}
}
1. 2차원 배열 queries를 크기만큼 반복해준다
2. 원소안에 0번째 배열과, 1번째 배열의 숫자에 해당하는 배열 arr의 인덱스 위치를 서로 바꿔준다
3. 반복이 끝나면 결과를 출력해준다
JAVA 배열의 복사 import java.util.Arrays
- 깊은 배열의 복사(Deep copy)
- 원본배열 또는 복사된 배열의 값이 변경이 있어도 서로 영향을 주지 않는다
- 각각 독립적인 메모리를 갖는다(복사된 실제값을 다른 메모리에 할당한다)
- import java.util.Arrays 패키지 메서드
- Arrays.copyOf(원본 배열, 복사할 길이)
- Arrays.copyOfRange(원본 배열, 복사 시작 인덱스, 복사 끝 인덱스)
- 얇은 배열의 복사(Shallow copy)
- 얕은 복사가 된 경우, 원본배열 또는 복사된 배열의 값이 변경이 서로에게 영향을 준다
- 같은 메모리를 가리키고 있다(메모리 공유)
- 연산자 = 사용
- 자료형[] 배열명 = 원본배열;
'문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 8 조건문, 문자열 (4) | 2024.07.25 |
---|---|
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 7 반복문 (1) | 2024.07.22 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 5 조건문 (0) | 2024.07.19 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 3 연산 (0) | 2024.07.17 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 2 출력, 연산 (0) | 2024.07.16 |