알고리즘

[프로그래머스] 코딩테스트 연습 - 가까운 1 찾기(JAVA)

inthyes 2023. 7. 11. 10:00

https://school.programmers.co.kr/learn/courses/30/lessons/181898

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.

단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.


소스코드

class Solution {
    public int solution(int[] arr, int idx) {
        int answer = -1;
        for(int i = idx; i < arr.length; i ++){
            if(arr[i] == 1){
                answer = i;
                break;
            }
        }
        return answer;
    }
}

 

소스코드 설명

1. 배열이 idx값보다 큰 것을 찾기 위해  idx부터 arr의 길이까지 반복문을 반복한다.

2. arr[i]가 1일 경우를 찾으면 break한다.

 

answer 을 0으로 초기화한 후 else문을 통해 -1에 대한 예외처리를 수행하려 하였지만 break문 없이 수행하여 오류를 겪었다.

조건문에서는 꼭 break, continue를 고려하는 습관을 가져야겠다..