[백준 15954] 인형들

2021. 5. 11. 22:42·알고리즘 문제풀이

www.acmicpc.net/problem/15954

 

15954번: 인형들

첫 번째부터 세 번째까지의 인형을 선택하면 표준편차는 2/3의 양의 제곱근이 되고, 이 때 표준편차가 최소가 된다. 두 번째부터 네 번째까지의 인형을 선택하는 경우와, 세 번째부터 다섯 번째

www.acmicpc.net

from decimal import Decimal


N, K = map(int, input().split())
arr = list(map(int,input().split()))

sums = [0 for i in range(N+1)]
exps = [0 for i in range(N+1)]

for i in range(1, len(arr)+1):
    sums[i] = sums[i-1] + arr[i-1]
    exps[i] = exps[i-1] + arr[i-1] ** 2

re = Decimal('INF')

for i in range(K, N+1): # 즉 개수.
    for j in range(N-i+1):
        mean = Decimal(sums[i+j] - sums[j]) / i
        var = Decimal(exps[i+j] - exps[j]) / i - mean * mean
        re = min(re, var)

print(re.sqrt())

풀이

먼저 분산을 구하는 식을 알아야 한다.

분산은 식을 정리하면

분산 = 제곱의 평균 - 평균의 제곱이다.

고등학교때 배웠지만 나는 이 공식을 까먹어서 시간초과가 나 풀이를 참고했다.

 

제곱의 평균, 평균 둘다 누적합을 통해 빠르게 구할 수 있다.

구한것을 토대로 표준편차를 구하고 최솟값을 비교해 주면 된다.

 

참고 : 분산공식 유도

 

시간복잡도

O(N2)으로 풀기위해서는 누적합을 필수적으로 써야한다.

누적합을 이용해서 평균과 분산을 O(1)로 구한다.

평균과 분산을 O(N^2)번 구해야 하기 때문에 총 시간복잡도는 O(N^2) 이다.

'알고리즘 문제풀이' 카테고리의 다른 글

[백준 1027] 고층 건물  (0) 2021.05.12
[백준 1004] 어린왕자  (0) 2021.05.12
[백준 1188] 음식 평론가  (0) 2021.05.11
[2021 KAKAO BLIND RECRUITMENT] 합승 택시 요금  (0) 2021.05.08
[2018 KAKAO BLIND RECRUITMENT] 셔틀버스  (0) 2021.05.08
'알고리즘 문제풀이' 카테고리의 다른 글
  • [백준 1027] 고층 건물
  • [백준 1004] 어린왕자
  • [백준 1188] 음식 평론가
  • [2021 KAKAO BLIND RECRUITMENT] 합승 택시 요금
WildDevmon
WildDevmon
『앗! 야생의 개발몬(이)가 나타났다!』
  • WildDevmon
    야생의 개발몬
    WildDevmon
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • Server (5)
      • 알고리즘 문제풀이 (27)
      • 회고 (3)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    커널 스레드 상태
    자바 최소공배수
    백준15954
    선발 명단
    백준 1004
    백준 인형들
    자바 최대공약수
    백준1188
    카카오 필요스펙
    1114백준
    경력 서류
    백준 경쟁적 전염
    코틀린 코루틴
    우아한 종료
    네이티브 메모리
    네카라쿠배 취업
    graceful shutdown
    백준 18405
    자바 프로세스 종료
    소가 길을 건너간 이유 5
    컴공 취준
    백준 5347
    백준6980
    ai개발자
    백준 1027
    통나무 자르기
    백준 1114 파이썬
    백준1238
    소수&팰린드롬
    백준1747
    파이썬
    합승 택시 요금
    백준 램프
    자바 스레드 상태
    2020 카카오 인턴
    백준 고층 건물
    자바 물리 메모리
    백준 파티
    백준 1034
    백준2262
    백준 1114
    terminationGracePeriodSeconds
    백준 어린 왕자
    백준 17281
    preStop
    백준14465
    백준 10610
    다이렉트 버퍼
    백준 30
    direct buffer
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
WildDevmon
[백준 15954] 인형들
상단으로

티스토리툴바