코딩 테스트 (Java)/코딩 기초 트레이닝 (프로그래머스)

181898. 가까운 1 찾기

가지코딩 2025. 4. 11. 19:12

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제

정수 배열 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

 

입출력 예 #1

  • 1보다 크면서 원소가 1인 가장 작은 인덱스는 3입니다. 따라서 3을 return 합니다.

입출력 예 #2

  • 4번 인덱스 이후에 1은 등장하지 않습니다. 따라서 -1을 return 합니다.

입출력 예 #3

  • 3번 인덱스의 값이 1입니다. 따라서 3을 return 합니다.

풀이

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

문제 오류다.

 

idx보다 큰 값이 아닌, 크거나 같은 배열의 값이 1인 가장 작은 인덱스 가 정답이다.

 


GitHub: https://github.com/gajicoding/coding_test/edit/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/0/181898.%E2%80%85%EA%B0%80%EA%B9%8C%EC%9A%B4%E2%80%851%E2%80%85%EC%B0%BE%EA%B8%B0

 

coding_test/프로그래머스/0/181898. 가까운 1 찾기 at main · gajicoding/coding_test

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - gajicoding/coding_test

github.com


출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr