[99클럽 코테 스터디 20일차 TIL] 배열

qk·2024년 6월 17일
0

회고

목록 보기
20/33
post-thumbnail

📖 오늘의 학습 키워드
배열

오늘의 회고

문제

[Count the Hidden Sequences]
https://leetcode.com/problems/count-the-hidden-sequences/description/

나의 해결

class Solution {
    public int numberOfArrays(int[] differences, int lower, int upper) {
        int min = 0;
        int max = 0;
        int sum = 0;
        for(int d : differences) {
            sum += d;
            if(d > 0) {
                max = Math.max(max, sum);
            }
            else {
                min = Math.min(min, sum);
            }
        }
        return Math.max(0, (upper-max)-(lower-min)+1);
    }
}
  1. max에는 for 문을 돌며 differences 배열의 원소를 차례로 더했을 때 최댓값을 저장하고 min에는 최솟값을 저장한다.
  2. max와 min을 이용해 upper와 lower 사이에 있는 경우의 수를 구한다.
    • (upper-max)-(lower-min)+1
    • 경우의 따라 위의 수가 음수가 될 수도 있으므로 그럴 경우 0을 반환할 수 있게 마지막에 Math.max(0, (upper-max)-(lower-min)+1)의 계산 결과를 반환한다.

0개의 댓글