목차
#1 가까운 1 찾기
문제 설명
정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
제한사항
- 3 ≤ arr의 길이 ≤ 100'000
- arr의 원소는 전부 1 또는 0입니다.
입출력 예
arr | idx | result |
[0, 0, 0, 1] | 1 | 3 |
[1, 0, 0, 1, 0, 0] | 4 | -1 |
[1, 1, 1, 1, 0] | 3 | 3 |
#2 알고리즘 및 코드
class Solution {
public int solution(int[] arr, int idx) {
for(int i = idx; i < arr.length; i++){
if(arr[i] == 1){
return i;
}
}
return -1;
}
}
- 처음 봤을 때 어려웠지만 차근차근 여러 번 읽어보면 이해가 된다.
- 배열의 arr [idx]부터 시작하면 되는데 그 이유는 idx 보다 크면서라는 조건이 있어서이다.
- arr [idx]부터 arr [arr.length-1]까지 이 사이의 값이 1인 것들 중 인덱스 번호가 가장 작은 것을 반환하거나
이러한 조건을 충족하는 인덱스가 없다면 -1을 반환하는 문제이다.
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] 배열 만들기 3 (0) | 2023.09.06 |
---|---|
[프로그래머스, LV.0] 리스트 자르기 (0) | 2023.09.04 |
[프로그래머스, LV.0] 글자 지우기 (0) | 2023.09.04 |
[프로그래머스, LV.0] 배열 만들기 1 (0) | 2023.09.04 |
[프로그래머스, LV.0] 첫 번째로 나오는 음수 (0) | 2023.09.03 |