[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]์œ ์—ฐ๊ทผ๋ฌด์ œ(C++)

2025. 4. 14. 14:44ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

https://school.programmers.co.kr/learn/courses/30/lessons/388351?language=cpp

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๋Š” ๊ทธ๋ ™์—์„œ๋Š” ์žฌํƒ๊ทผ๋ฌด์™€ ํ•จ๊ป˜ ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ์„ ์ž์œ ๋กญ๊ฒŒ ์ •ํ•˜๋Š” ์œ ์—ฐ๊ทผ๋ฌด์ œ๋ฅผ ์‹œํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋„ ์ •์ฐฉ์„ ์œ„ํ•ด ์˜ค๋Š˜๋ถ€ํ„ฐ ์ผ์ฃผ์ผ ๋™์•ˆ ๊ฐ์ž ์„ค์ •ํ•œ ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ์— ๋Šฆ์ง€ ์•Š๊ณ  ์ถœ๊ทผํ•œ ์ง์›๋“ค์—๊ฒŒ ์ƒํ’ˆ์„ ์ฃผ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ง์›๋“ค์€ ์ผ์ฃผ์ผ๋™์•ˆ ์ž์‹ ์ด ์„ค์ •ํ•œ ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ + 10๋ถ„๊นŒ์ง€ ์–ดํ”Œ๋กœ ์ถœ๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ์ด 9์‹œ 58๋ถ„์ธ ์ง์›์€ 10์‹œ 8๋ถ„๊นŒ์ง€ ์ถœ๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ํ† ์š”์ผ, ์ผ์š”์ผ์˜ ์ถœ๊ทผ ์‹œ๊ฐ์€ ์ด๋ฒคํŠธ์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง์›๋“ค์€ ๋งค์ผ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์–ดํ”Œ๋กœ ์ถœ๊ทผํ•˜๊ณ , ๋ชจ๋“  ์‹œ๊ฐ์€ ์‹œ์— 100์„ ๊ณฑํ•˜๊ณ  ๋ถ„์„ ๋”ํ•œ ์ •์ˆ˜๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10์‹œ 13๋ถ„์€ 1013์ด ๋˜๊ณ  9์‹œ 58๋ถ„์€ 958์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์ง์›๋“ค์ด ์„ค์ •ํ•œ ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ๊ณผ ์‹ค์ œ๋กœ ์ถœ๊ทผํ•œ ๊ธฐ๋ก์„ ๋ฐ”ํƒ•์œผ๋กœ ์ƒํ’ˆ์„ ๋ฐ›์„ ์ง์›์ด ๋ช‡ ๋ช…์ธ์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ง์› n๋ช…์ด ์„ค์ •ํ•œ ์ถœ๊ทผ ํฌ๋ง ์‹œ๊ฐ์„ ๋‹ด์€ 1์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด schedules, ์ง์›๋“ค์ด ์ผ์ฃผ์ผ ๋™์•ˆ ์ถœ๊ทผํ•œ ์‹œ๊ฐ์„ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด timelogs, ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์š”์ผ์„ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ startday๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒํ’ˆ์„ ๋ฐ›์„ ์ง์›์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

๋ฌธ์ œ ํ•ด์„ค

์ด ๋ฌธ์ œ์—์„œ ์ค‘์š”ํ•œ ์ ์€  "์‹œ๊ฐ„ ํ‘œ์‹œ ๋ฐฉ๋ฒ•" ์ด๋‹ค.

์‹œ๊ฐ„์€ ๋ฐฑ์˜ ์ž๋ฆฌ ์ˆ˜, ๋ถ„์€ ์‹ญ๊ณผ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์ง€๊ฐ์„ ํ™•์ธํ•  ๋•Œ ๋‹จ์ˆœํžˆ Schedule ์‹œ๊ฐ„์— + 10 ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,

+10์„ ํ–ˆ์„ ๋•Œ 60๋ถ„ ์ด์ƒ์ด๋ฉด ์‹œ๊ฐ„์„ ์˜ฌ๋ฆฌ๊ณ , ๋‚˜๋จธ์ง€๋ฅผ ๋ถ„์— ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค.

#include <string>
#include <vector>

using namespace std;

int GetMaximumScheduleTime(int time)
{
    int scheduleHour = time / 100;
    int scheduleMin = time % 100;
    
    scheduleMin += 10;
           
    if(scheduleMin >= 60)
    {
        ++scheduleHour;
        scheduleMin %= 60;
    }
    
    return scheduleHour*100 + scheduleMin;
                
}

int solution(vector<int> schedules, vector<vector<int>> timelogs, int startday) {
    int answer = 0;
    
    for(int p = 0; p < timelogs.size(); ++p)
    {
        bool wasLate = false;
        for(int d = 0; d < timelogs[p].size(); ++d)
         {
            // ์š”์ผ ํ™•์ธ
            int today = (startday+d) % 7;
            if(today == 6 || today == 0)
                continue;
        
            // ์ง€๊ฐํ™•์ธ
            if(GetMaximumScheduleTime(schedules[p]) < timelogs[p][d])
            {
                wasLate = true;
                break;
            }
        }
        
        if(!wasLate)
            ++answer;
    }

    return answer;
}

 

 

Claude์— ์ฝ”๋“œ ์ˆ˜์ •์„ ์š”์ฒญํ•œ ํ›„ ์ฝ”๋“œ์ด๋‹ค.

#include <string>
#include <vector>
using namespace std;

// ์ตœ๋Œ€ ํ—ˆ์šฉ ๋„์ฐฉ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๋Š” ํ—ฌํผ ํ•จ์ˆ˜ (์Šค์ผ€์ค„ + 10๋ถ„)
inline int GetMaximumScheduleTime(int time) {
    int scheduleHour = time / 100;
    int scheduleMin = time % 100;
    
    scheduleMin += 10;
           
    if(scheduleMin >= 60) {
        ++scheduleHour;
        scheduleMin %= 60;
    }
    
    return scheduleHour * 100 + scheduleMin;
}

// ๋ฉ”์ธ ํ•ด๊ฒฐ ํ•จ์ˆ˜
int solution(vector<int> schedules, vector<vector<int>> timelogs, int startday) {
    int answer = 0;
    const int PEOPLE_COUNT = timelogs.size();
    
    // ์ตœ๋Œ€ ์Šค์ผ€์ค„ ์‹œ๊ฐ„์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜์—ฌ ์žฌ๊ณ„์‚ฐ์„ ๋ฐฉ์ง€
    vector<int> maxScheduleTimes(PEOPLE_COUNT);
    for (int p = 0; p < PEOPLE_COUNT; ++p) {
        maxScheduleTimes[p] = GetMaximumScheduleTime(schedules[p]);
    }
    
    // ์ ˆ๋Œ€ ์ง€๊ฐํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ ์ˆ˜ ๊ณ„์‚ฐ
    for (int p = 0; p < PEOPLE_COUNT; ++p) {
        bool wasLate = false;
        for (int d = 0; d < timelogs[p].size(); ++d) {
            // ์š”์ผ ํ™•์ธ (์ฃผ๋ง ๊ฑด๋„ˆ๋›ฐ๊ธฐ)
            int today = (startday + d) % 7;
            if (today == 6 || today == 0) // ์ฃผ๋ง (ํ† ์š”์ผ ๋˜๋Š” ์ผ์š”์ผ)
                continue;
            
            // ์ง€๊ฐ ํ™•์ธ
            if (maxScheduleTimes[p] < timelogs[p][d]) {
                wasLate = true;
                break;  // ํ•œ ๋ฒˆ์ด๋ผ๋„ ์ง€๊ฐํ–ˆ์œผ๋ฉด ๋” ์ด์ƒ ํ™•์ธํ•  ํ•„์š” ์—†์Œ
            }
        }
        
        if (!wasLate)
            ++answer;
    }
    return answer;
}
  1. inline ํ‚ค์›Œ๋“œ๋ฅผ ํ—ฌํผ ํ•จ์ˆ˜์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ธ๋ผ์ธํ™”๋ฅผ ์ œ์•ˆํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ
  2. ๊ฐ ์‚ฌ๋žŒ๋ณ„ ์ตœ๋Œ€ ์Šค์ผ€์ค„ ์‹œ๊ฐ„์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์žฌ๊ณ„์‚ฐ ๋ฐฉ์ง€

๊ฒฐ๊ณผ!

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง(C++)  (0) 2025.04.15
[๋ฐฑ์ค€ 1926] ๊ทธ๋ฆผ(C++)  (0) 2023.11.18
[๋ฐฑ์ค€ 1931] ํšŒ์˜์‹ค ๋ฐฐ์ •(C++)  (0) 2023.10.26
[๋ฐฑ์ค€ 1003] ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ (C++)  (0) 2023.10.25
[Hacker Rank] Organizing Containers of Balls (C++)  (1) 2023.10.09
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง(C++)
  • [๋ฐฑ์ค€ 1926] ๊ทธ๋ฆผ(C++)
  • [๋ฐฑ์ค€ 1931] ํšŒ์˜์‹ค ๋ฐฐ์ •(C++)
  • [๋ฐฑ์ค€ 1003] ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ (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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

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

    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

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

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
    Beankong_
    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]์œ ์—ฐ๊ทผ๋ฌด์ œ(C++)
    ์ƒ๋‹จ์œผ๋กœ

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