일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 프로그래머스 #JAVA #코딩테스트 #다음에 올 숫자 #코딩
- 프로그래머스 #자바 #java #코딩테스트 #연속된 수의 합 #코딩
- JAVA #객체지향언어 #절차지향언어 #코딩 #Python #C #C++ #객체지향 #절차지향
Archives
- Today
- Total
Javadocs
[Programmers] 가까운 수 찾기 (Java) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/120890
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[ 문제 설명 ]
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n 과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
[ 제한 사항 ]
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
[ 입출력 예 ]
array | n | result |
[ 3, 10, 28 ] | 20 | 28 |
[ 10, 11, 12 ] | 13 | 12 |
[ 입출력 예 설명 ]
입출력 예 #1
- 3, 10, 28 중 20과 가장 가까운 수는 28입니다.
입출력 예 #2
- 10, 11, 12 중 13과 가장 가까운 수는 12입니다.
[ 풀이 ]
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public static int solution(int[] array, int n) {
int min = 100;
for (int i = 0; i < array.length; i++) { // 주어진 배열 array의 길이만큼 반복
// 배열 array에 주어진 n을 뺀 수를 절대값 처리. 그리고 최소값과 비교
if (Math.abs(array[i]-n) < min) {
min = Math.abs(array[i]-n); // 계산한 절대값을 최소값 min에 저장
}
} // 여기까지 제일 작은 min 값이 지정된 상태.
// 위 min과 비교하기 위해 배열의 크기가 가변적인 배열 선언
ArrayList<Integer> arr = new ArrayList<Integer>();
for (int i = 0; i < array.length; i++) {
if (Math.abs(array[i]-n) == min) { // 위 min과 같은 수를 찾기
arr.add(array[i]); // 같은 수의 인덱스 값을 arr 배열에 저장
}
}
//System.out.println(arr);
// 가장 가까운 수가 여러 개일 경우 더 작은 수를 return해야 하므로 오름차순 정렬
Collections.sort(arr);
return arr.get(0);
}
}
[설명]
ArraysList();

일반적인 배열()과의 차이점은 배열은 크기가 고정인 반면에, ArrayList는 크기가 가변적입니다.
# ArrayList의 생성
ArrayList를 사용하려면 아래 구문을 먼저 추가해야 합니다.

ArraysList<Integer> arr1 = new ArraysList<Integer>(); // 타입을 지정
ArraysList<Integer> arr2 = new ArraysList<>(); // 타입 생략 가능
ArraysList<Integer> arr3 = new ArraysList<>(10); // 초기 크기 설정
ArraysList<Integer> arr4 = new ArraysList<>(arr1); // 다른 Collection 값으로 초기화
ArraysList<Integer> arr5 = new ArraysList<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()를 사용해 기본 값들로 생성 가능.
Collections.sort();
Arrays.sort()와 비교를 많이 되는데 Arrays.sort() 배열을 정렬할 때 사용하고 Collections.sort()는 List를 정렬할 때 사용한다.
'SelfStudy > Programmers(코딩테스트)' 카테고리의 다른 글
[Programmers] 대문자와 소문자 (Java) (0) | 2023.04.18 |
---|---|
[Programmers] 한 번만 등장한 문자 (Java) (0) | 2023.04.18 |
[Programmers] 인덱스 바꾸기 (Java) (0) | 2023.04.10 |
[Programmers] 369게임 (Java) (0) | 2023.04.01 |
[ Programmers ] 가장 큰 수 찾기 (Java) (0) | 2023.03.21 |
Comments