99클럽 코테 스터디 2일차 TIL - Java

김동하·2024년 7월 24일
0

알고리즘

목록 보기
55/90

문제

평균구하기

풀이

  • 배열의 모든 원소 값을 더한 후 배열의 lengh로 나눈다.

코드

class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        int lt = 0;
        int rt = arr.length - 1;
        
        while(lt <= rt){
            answer += (lt == rt) ? arr[lt] : (arr[lt] + arr[rt]);
            lt++;
            rt--;
        }
        
        return answer / arr.length;
    }
}

정리

  • 처음에 연속된 원소인 줄 알고 투 포인터로 했다가 아닌 걸 알았지만 그냥 풀었다. 순회는 반으로 줄일 수 있다.
  • for문으로 선형탐색하는 거랑 위 코드랑 둘 다 빅오는 n이긴 하지만 위 코드는 순회는 반만 하니까 n이 커질 때 아주 조금은 빠를 줄 알았는데, GPT에게 물어보니 괜히 if문 타는 것보다 for문 선형탐색이 성능이 더 좋다고 한다. 시간복잡도 어렵군
profile
프론트엔드 개발

0개의 댓글