ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / μž…κ΅­μ‹¬μ‚¬(C++)

2023. 5. 11. 14:21Β·πŸ–₯️ Study Note/Coding Test

https://school.programmers.co.kr/learn/courses/30/lessons/43238

문제 μ„€λͺ…

nλͺ…이 μž…κ΅­μ‹¬μ‚¬λ₯Ό μœ„ν•΄ 쀄을 μ„œμ„œ 기닀리고 μžˆμŠ΅λ‹ˆλ‹€. 각 μž…κ΅­μ‹¬μ‚¬λŒ€μ— μžˆλŠ” μ‹¬μ‚¬κ΄€λ§ˆλ‹€ μ‹¬μ‚¬ν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ€ λ‹€λ¦…λ‹ˆλ‹€.

μ²˜μŒμ— λͺ¨λ“  μ‹¬μ‚¬λŒ€λŠ” λΉ„μ–΄μžˆμŠ΅λ‹ˆλ‹€. ν•œ μ‹¬μ‚¬λŒ€μ—μ„œλŠ” λ™μ‹œμ— ν•œ λͺ…λ§Œ 심사λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ μ•žμ— μ„œ μžˆλŠ” μ‚¬λžŒμ€ λΉ„μ–΄ μžˆλŠ” μ‹¬μ‚¬λŒ€λ‘œ κ°€μ„œ 심사λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 더 빨리 λλ‚˜λŠ” μ‹¬μ‚¬λŒ€κ°€ 있으면 κΈ°λ‹€λ Έλ‹€κ°€ 그곳으둜 κ°€μ„œ 심사λ₯Ό 받을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  μ‚¬λžŒμ΄ 심사λ₯Ό λ°›λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ„ μ΅œμ†Œλ‘œ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

μž…κ΅­μ‹¬μ‚¬λ₯Ό κΈ°λ‹€λ¦¬λŠ” μ‚¬λžŒ 수 n, 각 심사관이 ν•œ λͺ…을 μ‹¬μ‚¬ν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ΄ λ‹΄κΈ΄ λ°°μ—΄ timesκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, λͺ¨λ“  μ‚¬λžŒμ΄ 심사λ₯Ό λ°›λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ˜ μ΅œμ†Ÿκ°’μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • μž…κ΅­μ‹¬μ‚¬λ₯Ό κΈ°λ‹€λ¦¬λŠ” μ‚¬λžŒμ€ 1λͺ… 이상 1,000,000,000λͺ… μ΄ν•˜μž…λ‹ˆλ‹€.
  • 각 심사관이 ν•œ λͺ…을 μ‹¬μ‚¬ν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ€ 1λΆ„ 이상 1,000,000,000λΆ„ μ΄ν•˜μž…λ‹ˆλ‹€.
  • 심사관은 1λͺ… 이상 100,000λͺ… μ΄ν•˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

n times return
6 [7, 10] 28

μž…μΆœλ ₯ 예 μ„€λͺ…

κ°€μž₯ 첫 두 μ‚¬λžŒμ€ λ°”λ‘œ 심사λ₯Ό λ°›μœΌλŸ¬ κ°‘λ‹ˆλ‹€.

7뢄이 λ˜μ—ˆμ„ λ•Œ, 첫 번째 μ‹¬μ‚¬λŒ€κ°€ λΉ„κ³  3번째 μ‚¬λžŒμ΄ 심사λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

10뢄이 λ˜μ—ˆμ„ λ•Œ, 두 번째 μ‹¬μ‚¬λŒ€κ°€ λΉ„κ³  4번째 μ‚¬λžŒμ΄ 심사λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

14뢄이 λ˜μ—ˆμ„ λ•Œ, 첫 번째 μ‹¬μ‚¬λŒ€κ°€ λΉ„κ³  5번째 μ‚¬λžŒμ΄ 심사λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

20뢄이 λ˜μ—ˆμ„ λ•Œ, 두 번째 μ‹¬μ‚¬λŒ€κ°€ λΉ„μ§€λ§Œ 6번째 μ‚¬λžŒμ΄ κ·Έκ³³μ—μ„œ 심사λ₯Ό λ°›μ§€ μ•Šκ³  1뢄을 더 κΈ°λ‹€λ¦° 후에 첫 번째 μ‹¬μ‚¬λŒ€μ—μ„œ 심사λ₯Ό λ°›μœΌλ©΄ 28뢄에 λͺ¨λ“  μ‚¬λžŒμ˜ 심사가 λλ‚©λ‹ˆλ‹€.

λ‚΄ ν•΄λ‹΅

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(int n, vector<int> times) {
    long long answer = 0;
    
    sort(times.begin(), times.end());
    
    long long min_time = 1;
    long long max_time = static_cast<long long>(times[times.size()-1]) * n;
    
    while(min_time <= max_time)
    {
        // μ΅œμ†Œ μ‹œκ°„κ³Ό μ΅œλŒ€ μ‹œκ°„μ˜ 평균 μ‹œκ°„μ„ κ΅¬ν•œλ‹€.
        long long avg_time = (min_time+max_time)/2;
        
        // 평균 μ‹œκ°„λ™μ•ˆ μ²˜λ¦¬ν•  수 μžˆλŠ” μ‚¬λžŒμ˜ 수
        long long count = 0;
        
        // 각 μž…κ΅­ 심사원이 평균 μ‹œκ°„λ™μ•ˆ μ²˜λ¦¬ν•  수 μžˆλŠ” μ‚¬λžŒ 수 계산
        for(const auto& t : times)
        {
            count += avg_time / t;
        }
        
        // λŒ€κΈ°μžλ³΄λ‹€ λ§Žμ€ 수 ν˜Ήμ€ λŒ€κΈ°μž μˆ˜λ§ŒνΌμ„ 처리 ν•  수 μžˆλ‹€λ©΄
        if(count >= n)
        {
            // μ •λ‹΅ μ‹œκ°„μ„ 평균 μ‹œκ°„μœΌλ‘œ μ„€μ •ν•œλ‹€.
            answer = avg_time;
            // μ΅œλŒ€ μ‹œκ°„μ„ ν˜„μž¬ 평균 μ‹œκ°„-1으둜 μ„€μ •ν•œλ‹€.
            max_time = avg_time-1;
        }
        
        // λŒ€κΈ°μž 수 보닀 적은 수λ₯Ό μ²˜λ¦¬ν•  수 μžˆλ‹€λ©΄
        else
        {
            // μ΅œμ†Œ μ‹œκ°„μ„ ν˜„μž¬ 평균 μ‹œκ°„+1둜 μ„€μ •ν•œλ‹€.
           min_time = avg_time+1;
        }
        
    }
    
    return answer;
}

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ–₯️ Study Note > Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - κ°€μž₯ λ¨Ό λ…Έλ“œ(C++)  (0) 2023.05.15
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - 징검닀리 κ±΄λ„ˆκΈ° (C++)  (0) 2023.05.12
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / λ“±κ΅£κΈΈ(C++)  (0) 2023.05.09
[λ°±μ€€] 2775번 : λΆ€λ…€νšŒμž₯이 λ ν…Œμ•Ό(C++)  (0) 2023.05.08
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.1 / 체윑볡(C++)  (0) 2023.05.07
'πŸ–₯️ Study Note/Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - κ°€μž₯ λ¨Ό λ…Έλ“œ(C++)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - 징검닀리 κ±΄λ„ˆκΈ° (C++)
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / λ“±κ΅£κΈΈ(C++)
  • [λ°±μ€€] 2775번 : λΆ€λ…€νšŒμž₯이 λ ν…Œμ•Ό(C++)
Beankong_
Beankong_
μ£Όλ‹ˆμ–΄ ν΄λΌμ΄μ–ΈνŠΈ ν”„λ‘œκ·Έλž˜λ¨Έ 곡뢀 기둝
  • Beankong_
    Beankong's Devlog
    Beankong_
  • 전체
    였늘
    μ–΄μ œ
    • 전체 κΈ€ (146)
      • β›… Daily (0)
      • πŸ–₯️ Study Note (2)
        • C++ (1)
        • Unreal Engine (5)
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • 🧭 Devlog (8)
        • μ˜€λ‹΅λ…ΈνŠΈ (4)
        • UE5 GameLift Server Test Project (1)
        • TIL (3)
  • λΈ”λ‘œκ·Έ 메뉴

    • 링크

    • 곡지사항

    • 인기 κΈ€

    • νƒœκ·Έ

      cpp
      OnlineSubsystem
      κ²Œμž„ν”„λ‘œκ·Έλž˜λ°
      그리디(greedy)
      κ²Œμž„ λͺ¨μž‘
      ν—¬ν…Œμ΄μ»€
      programmers
      unrealengine module
      ν”„λ£Œκ·Έλž˜λ¨ΈμŠ€
      κ²Œμž„ 개발
      UnrealEngine
      unrealengine build system
      μ½”λ”©ν…ŒμŠ€νŠΈ
      κ·Έλž˜ν”„ 순회
      UnrealEngine5
      ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
      μ΅œλ‹¨ 거리 μ•Œκ³ λ¦¬μ¦˜
      propertyaccess
      κ²Œμž„ ν”„λ‘œκ·Έλž˜λ°
      μ•Œκ³ λ¦¬μ¦˜
    • 졜근 λŒ“κΈ€

    • 졜근 κΈ€

    • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
    Beankong_
    ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / μž…κ΅­μ‹¬μ‚¬(C++)
    μƒλ‹¨μœΌλ‘œ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”