https://school.programmers.co.kr/learn/courses/30/lessons/181898
문제
정수 배열 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를 고려하는 습관을 가져야겠다..
'알고리즘' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 - n번째 원소까지(JAVA) (0) | 2023.07.17 |
---|---|
[프로그래머스] 코딩테스트 연습 - 원하는 문자열 찾기(JAVA) (0) | 2023.07.16 |
[프로그래머스] 코딩테스트 연습 - 카운트 다운(JAVA) (0) | 2023.07.10 |
[프로그래머스] 코딩테스트 연습 - 5명씩(JAVA) (0) | 2023.07.09 |
[프로그래머스] 코딩테스트 연습 - 배열 만들기1(JAVA) (0) | 2023.07.09 |