개발 창고/Algorithm
[프로그래머스] 마지막 두 원소 - JAVA
로이제로
2024. 1. 6. 23:58
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181927?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 내용은 지적 재산 보호 차원에서 가져오지 않고 풀이만 공유드리도록 하겠습니다.
풀이
제 풀이가 무조건적으로 맞는 것도 최적의 답변도 아니지만, 이런 풀이도 있다는 차원에서 작성해 보며, 좀 더 나은 방법이 있다면 이야기해 주셔도 도움 될 것 같습니다.
class Solution {
public int[] solution(int[] num_list) {
// 1. 결과 반환을 위한 Array 선언
// 전달 받은 array에 1개가 추가되므로 전체 array 개수를 num_list의 개수 +1로 선언해줍니다.
int[] answer = new int[num_list.length + 1];
// 2. 기존 데이터 추가
// 전달받은 num_list를 answer array에 추가해줍니다.
for(int i = 0; i < num_list.length; i++){
answer[i] = num_list[i];
}
// 3. 뒤에서 두 번째 값을 a, 뒤에서 첫 번째 값을 b로 선언해줍니다.
int a = num_list[num_list.length - 2];
int b = num_list[num_list.length - 1];
// 4. 뒤에서 두 번째 값이 뒤에서 첫 번째 값보다 작으면, b - a
// 그 외에 경우에 b *2를 answer의 마지막 값으로 추가해줍니다.
if(a < b) answer[answer.length - 1] = b - a;
else answer[answer.length - 1] = b * 2;
// 5. 반환합니다.
return answer;
}
}
반응형