문제
이번 코딩 테스트를 풀 때 문제 설명을 잘 이해하지 못한 탓에 코드를 짤 때 애를 먹었던 것 같다. 그래서 항상 첫 번째로 주어진 문제를 잘 이해하는 것이 중요한 것 같다는 생각이 든다. 문해력이 딸리는 사람인지라.. 독서의 중요성을 다시 한번 깨닫고 간다..ㅎㅎ
특히 idx 보다 크면서 배열의 값이 1인 가장 작은 인덱스를 반환하라는 말이 잘 이해가 되지 않았다.
주어진 idx가 arr[i]의 인덱스라고 설명 해주었으면 하는 바램인데 그냥 정수라고 idx라고만 주어져 있어서 모처럼 아쉬운 문제였다..ㅠㅠ
문제 설명을 내가 이해한데로 설명을 간략하게 해 보겠다.
* 여기에서 idx는 arr 배열의 인덱스를 뜻한다
[0,0,0,1]을 예시를 들어 설명하자면 arr배열 안에 idx 인덱스부터 마지막 인덱스까지 비교하면서 arr배열에 1이란 수가 있으면 1이 있는 인덱스 방을 반환하는 내용이다.
또 다른 예시를 들어 [0,0,1,1]에서 idx가 1이라고 치면 인덱스가 1인 곳부터 인덱스가 3인 곳에서 값이 1인 인덱스는 3, 4번 방이다. 주어진 문제에선 배열의 값이 1인 가장 작은 인덱스를 찾으라고 하였으므로 3을 반환해주고 반복문을 멈춰줘야 된다. 그리하여 break;를 써주어 가장 작은 인덱스만 반환시킨다.
결과
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; } }
'코딩 테스트' 카테고리의 다른 글
[ 프로그래머스 ] 369게임 (0) | 2024.02.28 |
---|---|
[ 프로그래머스 ] 문자열 정렬하기(2) (0) | 2024.02.28 |
[ 프로그래머스 ] 꼬리 문자열 (0) | 2024.02.19 |
[ 프로그래머스 ] 글자 이어 붙이기 (0) | 2024.02.19 |
[ 프로그래머스 ] 배열 만들기 1 (0) | 2024.02.18 |