본문 바로가기

leetcode 문제 풀이

LeetCode 1550. Three Consecutive Odds 자바 문제 풀이

반응형

문제 설명

  • 문제: 주어진 정수 배열에서 연속적으로 나타나는 세 개의 홀수가 있는지 확인하세요. 만약 그런 경우가 존재한다면 true를 반환하고, 그렇지 않으면 false를 반환하세요.
  • 설명: 입력으로 주어진 정수 배열을 검사하여 연속적으로 나타나는 세 개의 홀수가 있는지 판단합니다. 배열 내의 각 숫자는 양수이며 배열의 길이는 최대 1000입니다.

접근 방식

  • 아이디어: 배열을 순회하면서 각 요소가 홀수인지 검사하고, 연속적인 홀수의 개수를 셉니다. 연속된 홀수의 개수가 3이 되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
  • 알고리즘:
    1. 배열을 순회하면서 각 요소가 홀수인지 확인합니다.
    2. 홀수인 경우 연속된 홀수(count)의 개수를 증가시키고, 그렇지 않으면 개수를 초기화합니다.
    3. 연속된 홀수(count)의 개수가 3이 되면 true를 반환합니다.
    4. 배열의 끝까지 확인했음에도 연속된 홀수(count)가 3개가 되지 않으면 false를 반환합니다.

코드

class Solution {
    public boolean threeConsecutiveOdds(int[] arr) {
        int count=0;

        for(int val : arr){
            if(val %2 != 0) count++;
            else count=0;

            if(count==3) return true;
        }
        return false;
    }
}

결론

  • 시간 복잡도: 주어진 배열을 한 번 순회하기 때문에 시간 복잡도는 O(n)입니다. 여기서 n은 배열의 길이입니다.
  • 공간 복잡도: 추가적인 공간을 사용하지 않기 때문에 공간 복잡도는 O(1)입니다.
반응형