저장을 습관화
프로그래머스 LV.0 가까운 1 찾기 본문
프로그래머스 LV.0 가까운 1 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/181898
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
가까운 1 찾기
2. 문제 설명
정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
3. 제한 사항
- 3 ≤ arr의 길이 ≤ 100'000
- arr의 원소는 전부 1 또는 0입니다.
4. 예시
arr | idx | result |
[0, 0, 0, 1] | 1 | 3 |
[1, 0, 0, 1, 0, 0] | 4 | -1 |
[1, 1, 1, 1, 0] | 3 | 3 |
5. 기본 제공 코드
function solution(arr, idx) {
var answer = 0;
return answer;
}
6. 제출한 내 답
const solution = (arr, idx) => {
for (i = idx; i < arr.length; i++) {
if (arr[i] === 1) return i;
}
return -1;
};
6-2. VSC에 작성한 내용
const solution = (arr, idx) => {
for (i = idx; i < arr.length; i++) {
if (arr[i] === 1) return i;
}
return -1;
};
// 테스트
console.log(solution([0, 0, 0, 1], 1));
console.log(solution([1, 0, 0, 1, 0, 0], 4));
console.log(solution([1, 1, 1, 1, 0], 3));
7. 특이사항
제한 사항 중의 arr의 길이가 <= 100,000 이라고 되어있어서
만약 배열의 뒷부분이 0으로 9만 9천 9백개 정도가 있으면
런타임 에러가 나는건 아닐까? 걱정했는데
다행히 이 정도로 런타임 에러가 나지는 않는가보다.
8. 다른 사람이 작성한 답
8-1. .indexOf()
const solution=(a,i)=>a.indexOf(1,i);
배열 내에서 특정 문자의 위치를 찾는 메소드 .indexOf()
그냥 arr.indexOf(1) 이라고 적으면 배열 내에서 가장 첫번째로 나오는 1의 인덱스를 리턴하지만
arr.indexOf(1, 2) 라고 적으면 인덱스 2부터 시작해서 1을 찾기 시작한다.
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 접미사 배열 (0) | 2023.09.21 |
---|---|
프로그래머스 LV.0 x 사이의 개수 (0) | 2023.09.20 |
프로그래머스 LV.0 특별한 이차원 배열 1 (0) | 2023.09.20 |
프로그래머스 LV.0 주사위의 개수 (0) | 2023.09.20 |
프로그래머스 LV.0 콜라츠 수열 만들기 (0) | 2023.09.20 |