📝오늘 공부한 것
- 커리어톤 참여하기
- 면접 준비하기
- 프로그래머스 문제풀기
📌 문제
📌 풀이
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;
}
}
⭐ 다른 풀이
정답 처리는 되었지만, 오류가 있는 풀이였다.
현재 코드는 반복문이 진행되는 동안 arr[i]가 1이 아닐 때마다 answer를 -1로 설정하고 있다. 만약 배열의 마지막 원소가 1이라면 그 이전에 나오는 0들 때문에 answer가 -1로 설정되고, 이후에 1이 나오더라도 answer를 올바른 값으로 변경하지 않게 된다.
따라서 반복문 시작 전에 answer를 -1로 설정하고, 반복문 내에서는 arr[i]가 1일 때만 answer를 변경하는 것이 좋다.
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;
}
}
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-231116(DDD, 도메인 주도 설계) (0) | 2023.11.16 |
---|---|
TIL-231115([프로그래머스/자바] 콜라츠 수열 만들기) (0) | 2023.11.15 |
TIL-231113([프로그래머스/자바] 특별한 이차원 배열 2) (0) | 2023.11.14 |
TIL-231111([프로그래머스/자바] 홀수 vs 짝수) (0) | 2023.11.11 |
TIL-231110(프레임워크, 라이브러리) (0) | 2023.11.10 |