loading
본문 바로가기
Coding/Programers

[ Programmers ] 가까운 1 찾기 ( java ) 55 / 124

by NeuLyeo 2024. 1. 3.

[ Programmers ] 가까운 1 찾기 ( java ) 55 / 124

 

프로그래머스

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

programmers.co.kr

 

 

 

 

📚 Table of Contents

     

     

     

     

    문제

    문제 설명

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

     

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

     

     

    제한사항

    • 3 ≤ arr의 길이 ≤ 100'000
      • arr의 원소는 전부 1 또는 0입니다.

     

     

    입출력 예

     

     

     

     

    문제 풀이

    코드 설명

    코드의 목적:

    이 코드는 주어진 배열(arr)의 특정 위치(idx)부터 시작하여 처음으로 1이 나오는 위치의 인덱스를 반환하는 기능을 가진 알고리즘입니다.

     

    코드의 주요 구조:

    1. 클래스 정의: Solution이라는 이름의 클래스를 정의합니다.
    2. 메서드 정의: solution이라는 이름의 메서드를 정의합니다. 이 메서드는 정수 배열(arr)과 정수(idx)를 인자로 받아 처리합니다.

     

    코드의 주요 알고리즘:

    1. 주어진 위치(idx)부터 배열을 순회합니다.
    2. 만약 배열의 원소가 1이면 해당 원소의 인덱스를 반환하고 종료합니다.
    3. 만약 배열을 전부 순회하였는데도 1이 없다면 -1을 반환합니다.

     

    코드의 핵심:

    1. 반복문을 이용하여 특정 위치부터 배열을 순회합니다.
    2. 조건문을 이용하여 배열의 원소가 1인 경우를 찾아 처리합니다.

     

     

     

    풀이

    class Solution {
        public int solution(int[] arr, int idx) {
            int answer = -1;
    
            // 주어진 위치부터 배열을 순회
            for (int i = idx; i < arr.length; i++) {
    
                // 만약 배열의 원소가 1이면 해당 원소의 인덱스를 반환
                if (arr[i] == 1) {
    
                    answer = i;
                    break;
                }
            }
    
            // 만약 배열을 전부 순회하였는데도 1이 없다면 -1을 반환
            return answer;
        }
    }