프로그래머스 중급 블로그

2024. 12. 4. 10:31·코딩 알고리즘 스터디

- 문제설명
준하는 블로그를 운영하고 있습니다. 용돈을 벌고 싶었던 준하는 블로그에 광고를 달려고 합니다.
광고를 달기 위해서는 블로그의 방문자 수가 많을 수록 유리합니다. 블로그의 관리자 메뉴에는 N일간의 방문자의 수가 기록되어 있는데, 준하는 이 기록중 연속된 K일만 빼고 모두 삭제해서 평균 방문자가 더 많은 것처럼 만드려고 합니다. 가장 많은 평균 방문자가 표시되도록 하기 위해서는 몇 번째 날 부터 K일만 남겨야 하는지 계산하는 프로그램을 작성해 주세요.

- 입출력 예
입력 #1
5 2
7 4 2 1 8

입력 #2
6 3
1 2 3 4 5 6

- 입력값 설명
첫째 줄에 N과 K가 공백으로 구분되어 주어집니다. (1 ≤ N ≤ 5,000, 1 ≤ K ≤ N)
둘째 줄에 i일째의 방문자 수를 나타내는 A_i가 공백으로 구분되어 주어집니다. (1 ≤ A_i ≤ 1,000)

출력 #1
1

출력 #2
4

- 출력값 설명
가장 많은 평균 방문자가 표시되도록 하기 위해서는 몇 번째 날 부터 K일만 남겨야 하는지 출력합니다. 그런 날이 여러 개라면, 가장 빠른 날을 출력합니다.

 

- 풀이과정

이번 문제는 연속적인 날을 찾는 문제로써 가장 많은 평균 방문자를 찾기위해 슬라이딩 윈도우를 사용합니다.

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); 
        int k = scanner.nextInt();
        
        int[] num = new int[n];
        for (int i = 0; i < n; i++) {
            num[i] = scanner.nextInt();
        }

        long sum = 0;
        for (int i = 0; i < k; i++) {
            sum += num[i];
        }

        long maxSum = sum;
        int day = 0; 

        for (int i = k; i < n; i++) {
            sum += num[i] - num[i - k]; 
            if (sum > maxSum) {
                maxSum = sum;
                day = i - k + 1; 
            }
        }
        System.out.println(day + 1);
    }
}

'코딩 알고리즘 스터디' 카테고리의 다른 글

프로그래머스 Lv.2 메뉴 리뉴얼 (Java)  (2) 2024.12.16
코딩마스터스 (중급) 메타버스 토끼  (2) 2024.12.10
코딩마스터스 (고급) 작곡 프로그램  (1) 2024.12.03
코딩마스터스 (중급) 곰팡이  (1) 2024.11.19
프로그래머스 Lv.3 정수삼각형  (0) 2024.11.11
'코딩 알고리즘 스터디' 카테고리의 다른 글
  • 프로그래머스 Lv.2 메뉴 리뉴얼 (Java)
  • 코딩마스터스 (중급) 메타버스 토끼
  • 코딩마스터스 (고급) 작곡 프로그램
  • 코딩마스터스 (중급) 곰팡이
Rabet
Rabet
  • 블로그 메뉴

    • 관리자
    • 글쓰기
  • Rabet
    卯
    Rabet
  • 전체
    오늘
    어제
    • Root (139)
      • KT AIVLE School (85)
        • Start (4)
        • Python프로그래밍 & 라이브러리 (6)
        • 데이터 처리 및 분석 (7)
        • 데이터 분석 및 의미 찾기 (7)
        • 웹크롤링 (10)
        • 머신러닝 (10)
        • 딥러닝 (6)
        • 시각지능 딥러닝 (10)
        • 언어지능 딥러닝 (6)
        • JAVA (4)
        • SQL (2)
        • 가상화 클라우드 (5)
        • 프로젝트 (8)
      • QA (2)
        • 오류사항 (1)
      • 웹공부 (14)
        • SPRING (11)
        • React (1)
      • 코딩 알고리즘 스터디 (23)
      • 코딩테스트 (9)
        • JAVA (8)
        • HTML (1)
      • CS공부 (3)
      • 자격증공부 (3)
        • 정보처리기사 (1)
        • 컴퓨터활용능력 1급 (1)
        • AICE Associate (1)
        • CSTS (0)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Rabet
프로그래머스 중급 블로그
상단으로

티스토리툴바