Coding Test/Java Coding Test
[프로그래머스 / 자바] - 가까운 1 찾기
nam_ji
2024. 1. 19. 08:46
가까운 1 찾기
문제
- 정수 배열 arr과 정수 idx가 매개변수로 주어집니다.
- arr의 원소 위치가 idx값보다 크면서 배열의 값이 1인 가장 작은 인덱스를 출력하는 문제입니다.
- idx값보다 크면서 배열의 값이 1이 없으면 -1을 출력합니다.
테스트 (이클립스)
- answer의 초기값을 -1로 주고
- for문을 idx부터 시작하게 하여 arr의 크기만큼 순회하도록 합니다.
- if문을 이용하여 arr의 원소를 1과 비교합니다.
- 만약 1이라면 answer에 그 원소 위치를 담도록 하고 for문을 종료합니다.
- if문의 조건을 만족하지 않고 for문 종료될 경우 answer의 초기값인 -1을 출력하게 되어 문제를 해결할 수 있었습니다.
package com.namji.codingtest.level0;
public class Find_1_NearYou {
public static void main(String[] args) {
/*
* 정수 배열 arr과 정수 idx가 매개변수로 주어집니다.
* arr은 0과 1로 이루어져 있고
* idx가 주어졌을 때 arr의 idx번째 원소 뒤로 1이 있으면 위치를 출력하는 문제입니다.
* [0, 0, 0, 1], 1 > 3 / [1, 0, 0, 1, 0, 0], 4 > -1 / [1, 1, 1, 1, 0], 3 > 3
*/
int[] arr = {1, 1, 1, 1, 0};
int idx = 3;
int answer = 0;
for (int i = idx; i < arr.length; i++) {
if (arr[i] == 1) {
answer = i;
break;
} else {
answer = -1;
}
}
int answer1 = -1;
for (int i = idx; i < arr.length; i++) {
if (arr[i] == 1) {
answer1 = i;
}
}
System.out.println("answer = " + answer);
System.out.println("answer1 = " + answer1);
}
}
프로그래머스 코드
class Solution {
public int solution(int[] arr, int idx) {
int answer = 0;
for (int i = idx; i < arr.length; i++) {
if (arr[i] == 1) {
answer = i;
break;
} else {
answer = -1;
}
}
return answer;
}
}