프로그래머스 - 야근 지수 (구현?)

2019. 11. 28. 05:12· 알고리즘 풀이/프로그래머스
728x90

쉬운데 5점이나 줫다


풀면서 문제가 이렇게 쉽다고? 생각했는데 진짜 쉬웟다


이게 기둥과보랑 같이 있는 문제라는 것이 믿겨지지 않는다.


처음에는 Solution으로 풀었는데 (반복문 쓰면 통과 못할까봐)


그냥 Solution1처럼 반복문 쓰고 풀어도 풀린다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public long solution1(int n, int[] works) {
        PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
 
        long answer = 0;
        long sum = 0;
 
        for (int i = 0; i < works.length; i++) {
            pq.add(works[i]);
            sum += works[i];
        }
        if (sum - n <= 0)
            return 0;
 
        while (true) {
            int now = pq.poll();
            pq.add(now - 1);
            if (n-- == 1)
                break;
        }
 
        while (!pq.isEmpty()) {
            int now = pq.poll();
            answer += (now * now);
            // System.out.println(pq.poll());
        }
 
        return answer;
    }
    
    // fail
    public long solution(int n, int[] works) {
        long answer = 0;
 
        // Arrays.sort(works);
 
        long sum = 0;
        int leng = works.length;
 
        for (int i = 0; i < works.length; i++) {
            sum += works[i];
            // System.out.println(works[i]);
        }
        long minSum = sum - n; // 일 총합에서 야근뺀것.. 이걸로 야근지수 만듬..
        long aver = minSum / leng;
 
        if (minSum <= 0)
            return 0;
 
        // System.out.println();
        // System.out.println(minSum);
        // System.out.println(aver);
        // System.out.println(aver*leng);
 
        long plusOneCount = minSum - aver * leng;
 
        answer = (aver * aver) * (leng - plusOneCount) + (aver + 1) * (aver + 1) * (plusOneCount);
        // System.out.println(leng-plusOneCount);
        // System.out.println(plusOneCount);
 
        return answer;
    }
Colored by Color Scripter

cs

 


저작자표시 (새창열림)

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

프로그래머스 - 최고의 집합 (규칙찾기)  (0) 2019.11.28
프로그래머스 - 줄 서는 방법 (규칙 찾기)  (0) 2019.11.28
프로그래머스 - 멀리 뛰기 (DP)  (0) 2019.11.28
4 ★★★ 프로그래머스 - 거스름돈 (DP)  (2) 2019.11.28
프로그래머스 - [2020카카오공채] 기둥과 보 설치 (구현, 푸는중..)  (0) 2019.11.26
'알고리즘 풀이/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 - 최고의 집합 (규칙찾기)
  • 프로그래머스 - 줄 서는 방법 (규칙 찾기)
  • 프로그래머스 - 멀리 뛰기 (DP)
  • 4 ★★★ 프로그래머스 - 거스름돈 (DP)
배게
배게
백엔드배게 님의 블로그입니다.
배게
백엔드
배게
전체
오늘
어제
  • 분류 전체보기 (430)
    • 알고리즘 풀이 (338)
      • 백준 (167)
      • Codility (22)
      • 프로그래머스 (123)
      • LeetCode (2)
      • CodeForces (9)
      • SWEA (15)
    • 백엔드 (11)
    • Coding existing for (3)
    • 무지성 메모 (40)
    • Debug (30)
    • 자바 (8)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • hibernate
  • 카카오톡
  • 카톡 내보내기한 파일 정렬
  • 카카오톡 txt파일 정렬
  • 카톡
  • MYSQL

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
배게
프로그래머스 - 야근 지수 (구현?)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.