ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋” ๋งต๊ฒŒ(C++)

2023. 4. 2. 17:47ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋ฌธ์ œ ์„ค๋ช…

๋งค์šด ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” Leo๋Š” ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Leo๋Š” ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‘ ๊ฐœ์˜ ์Œ์‹์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ž์–ด ์ƒˆ๋กœ์šด ์Œ์‹์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์„ž์€ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ = ๊ฐ€์žฅ ๋งต์ง€ ์•Š์€ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ + (๋‘ ๋ฒˆ์งธ๋กœ ๋งต์ง€ ์•Š์€ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ * 2)

Leo๋Š” ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ K ์ด์ƒ์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜์—ฌ ์„ž์Šต๋‹ˆ๋‹ค.Leo๊ฐ€ ๊ฐ€์ง„ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด scoville๊ณผ ์›ํ•˜๋Š” ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์„ž์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • scoville์˜ ๊ธธ์ด๋Š” 2 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • K๋Š” 0 ์ด์ƒ 1,000,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • scoville์˜ ์›์†Œ๋Š” ๊ฐ๊ฐ 0 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

scoville  K return
[1, 2, 3, 9, 10, 12] 7 2

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  1. ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ 1์ธ ์Œ์‹๊ณผ 2์ธ ์Œ์‹์„ ์„ž์œผ๋ฉด ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.์ƒˆ๋กœ์šด ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ = 1 + (2 * 2) = 5๊ฐ€์ง„ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ = [5, 3, 9, 10, 12]
  2. ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ 3์ธ ์Œ์‹๊ณผ 5์ธ ์Œ์‹์„ ์„ž์œผ๋ฉด ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.์ƒˆ๋กœ์šด ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ = 3 + (5 * 2) = 13๊ฐ€์ง„ ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ = [13, 9, 10, 12]

๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ 7 ์ด์ƒ์ด ๋˜์—ˆ๊ณ  ์ด๋•Œ ์„ž์€ ํšŸ์ˆ˜๋Š” 2ํšŒ์ž…๋‹ˆ๋‹ค.

๋‚ด ํ•ด๋‹ต

#include <string>
#include <vector>
#include <queue>

using namespace std;

int solution(vector<int> scoville, int K) {
    int answer = 0;
    priority_queue<int, vector<int>, greater<int>> pq;
    
    // ์šฐ์„ ์ˆœ์œ„ ํ์— ์Šค์ฝ”๋นŒ ๋„ฃ์–ด์„œ ์ •๋ ฌ
    for(const auto& i : scoville)
    {
        pq.push(i);
    }
    
    while(true)
    {
        // ๊ฐ€์žฅ ๋‚ฎ์€ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ k ์ด์ƒ์ด๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.
        if(pq.top() >= K)
            break;
        
        // ๊ฐ€์žฅ ๋‚ฎ์€ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ k ๋ฏธ๋งŒ์ด๋ฉด์„œ ์„ž์„ ์Œ์‹์ด ์—†๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.
        if(pq.size() < 2)
        {
            answer = -1;
            break;
        }
        
        // ์Œ์‹์„ ์„ž๋Š”๋‹ค.
        int s1, s2, result = 0;
        s1 = pq.top();
        pq.pop();
        s2 = pq.top();
        pq.pop();
        
        result = s1 + s2 * 2;
        
        // ์„ž์€ ๊ฒฐ๊ณผ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ๋Š”๋‹ค.
        pq.push(result);
        
        ++answer;
    }
    
    
    return answer;
}
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ–ฅ๏ธ Study Note > Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋ชจ์Œ์‚ฌ์ „(C++)  (0) 2023.04.05
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ(C++)  (0) 2023.04.04
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ํ”ผ๋กœ๋„(C++)  (0) 2023.04.01
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ์นดํŽซ(C++)  (0) 2023.03.30
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ์†Œ์ˆ˜ ์ฐพ๊ธฐ(C++)  (0) 2023.03.28
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋ชจ์Œ์‚ฌ์ „(C++)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ(C++)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ํ”ผ๋กœ๋„(C++)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ์นดํŽซ(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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

    • ๊ณต์ง€์‚ฌํ•ญ

    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ
      ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      UnrealEngine
      ๊ฒŒ์ž„ ๋ชจ์ž‘
      ๊ฒŒ์ž„ ๊ฐœ๋ฐœ
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      unrealengine build system
      OnlineSubsystem
      cpp
      propertyaccess
      ๊ทธ๋ฆฌ๋””(greedy)
      programmers
      ํ”„๋ฃŒ๊ทธ๋ž˜๋จธ์Šค
      unrealengine module
      UnrealEngine5
      ํ—ฌํ…Œ์ด์ปค
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
    Beankong_
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.2 / ๋” ๋งต๊ฒŒ(C++)
    ์ƒ๋‹จ์œผ๋กœ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”