ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.1 / 체윑볡(C++)

2023. 5. 7. 23:38Β·πŸ–₯️ Study Note/Coding Test

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

문제 μ„€λͺ…

μ μ‹¬μ‹œκ°„μ— 도둑이 λ“€μ–΄, 일뢀 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμŠ΅λ‹ˆλ‹€. λ‹€ν–‰νžˆ μ—¬λ²Œ 체윑볡이 μžˆλŠ” 학생이 μ΄λ“€μ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주렀 ν•©λ‹ˆλ‹€. ν•™μƒλ“€μ˜ λ²ˆν˜ΈλŠ” 체격 순으둜 맀겨져 μžˆμ–΄, λ°”λ‘œ μ•žλ²ˆν˜Έμ˜ ν•™μƒμ΄λ‚˜ λ°”λ‘œ λ’·λ²ˆν˜Έμ˜ ν•™μƒμ—κ²Œλ§Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 4번 학생은 3번 ν•™μƒμ΄λ‚˜ 5번 ν•™μƒμ—κ²Œλ§Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€. 체윑볡이 μ—†μœΌλ©΄ μˆ˜μ—…μ„ 듀을 수 μ—†κΈ° λ•Œλ¬Έμ— μ²΄μœ‘λ³΅μ„ 적절히 빌렀 μ΅œλŒ€ν•œ λ§Žμ€ 학생이 μ²΄μœ‘μˆ˜μ—…μ„ λ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.

전체 ν•™μƒμ˜ 수 n, μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν•œ ν•™μƒλ“€μ˜ λ²ˆν˜Έκ°€ λ‹΄κΈ΄ λ°°μ—΄ lost, μ—¬λ²Œμ˜ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ ν•™μƒλ“€μ˜ λ²ˆν˜Έκ°€ λ‹΄κΈ΄ λ°°μ—΄ reserveκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆλŠ” ν•™μƒμ˜ μ΅œλŒ“κ°’μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • 전체 ν•™μƒμ˜ μˆ˜λŠ” 2λͺ… 이상 30λͺ… μ΄ν•˜μž…λ‹ˆλ‹€.
  • μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν•œ ν•™μƒμ˜ μˆ˜λŠ” 1λͺ… 이상 nλͺ… μ΄ν•˜μ΄κ³  μ€‘λ³΅λ˜λŠ” λ²ˆν˜ΈλŠ” μ—†μŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œμ˜ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ ν•™μƒμ˜ μˆ˜λŠ” 1λͺ… 이상 nλͺ… μ΄ν•˜μ΄κ³  μ€‘λ³΅λ˜λŠ” λ²ˆν˜ΈλŠ” μ—†μŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œ 체윑볡이 μžˆλŠ” ν•™μƒλ§Œ λ‹€λ₯Έ ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 이 학생은 μ²΄μœ‘λ³΅μ„ ν•˜λ‚˜λ§Œ λ„λ‚œλ‹Ήν–ˆλ‹€κ³  κ°€μ •ν•˜λ©°, 남은 체윑볡이 ν•˜λ‚˜μ΄κΈ°μ— λ‹€λ₯Έ ν•™μƒμ—κ²ŒλŠ” μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μ—†μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

n  lost  reserve  return
5 [2, 4] [1, 3, 5] 5
5 [2, 4] [3] 4
3 [3] [1] 2

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

예제 #1

1번 학생이 2번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주고, 3번 ν•™μƒμ΄λ‚˜ 5번 학생이 4번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주면 학생 5λͺ…이 μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆμŠ΅λ‹ˆλ‹€.

예제 #2

3번 학생이 2번 ν•™μƒμ΄λ‚˜ 4번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주면 학생 4λͺ…이 μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ ν•΄λ‹΅

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

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = 0;
    vector<int> check(n, 1);
    sort(lost.begin(), lost.end());
    sort(reserve.begin(), reserve.end());
    
    // μžŠμ–΄λ²„λ¦° 체윑볡 체크
    for(const auto& l : lost)
        --check[l-1];
    
    // μ—¬λΆ„μ˜ 체윑볡 체크
    for(const auto& r : reserve)
        ++check[r-1];
        
    for(int i = 0; i < n; ++i)
    {
        //체윑볡이 없을 경우
        if(check[i] == 0)
        {
            // μ•ž 번호 μ‚¬λžŒμ—κ²Œ 빌리기
            if(i-1 >= 0 && check[i-1] == 2)
            {
                --check[i-1];
                ++check[i];
                continue;
            }
            
            // λ’· 번호 μ‚¬λžŒμ—κ²Œ 빌리기
            if(i+1 < n && check[i+1] == 2)
            {
                --check[i+1];
                ++check[i];
            }
        }
    }

    // 체윑볡이 μžˆλŠ” μ‚¬λžŒ 수 μ„ΈκΈ°
    for (const auto& a : check)
        if (a > 0)
            answer++;
    
    
    return answer;
}

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

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

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / λ“±κ΅£κΈΈ(C++)  (0) 2023.05.09
[λ°±μ€€] 2775번 : λΆ€λ…€νšŒμž₯이 λ ν…Œμ•Ό(C++)  (0) 2023.05.08
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.1 / λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 수 μ°ΎκΈ°(C++)  (0) 2023.05.06
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.2 / 짝지어 μ œκ±°ν•˜κΈ°(C++)  (0) 2023.05.06
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.2 / λ‹€μŒ 큰 숫자(C++)  (0) 2023.05.01
'πŸ–₯️ Study Note/Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.3 / λ“±κ΅£κΈΈ(C++)
  • [λ°±μ€€] 2775번 : λΆ€λ…€νšŒμž₯이 λ ν…Œμ•Ό(C++)
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.1 / λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 수 μ°ΎκΈ°(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 module
      그리디(greedy)
      programmers
      κ²Œμž„ ν”„λ‘œκ·Έλž˜λ°
      OnlineSubsystem
      ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
      κ²Œμž„ λͺ¨μž‘
      κ²Œμž„ 개발
      ν”„λ£Œκ·Έλž˜λ¨ΈμŠ€
      ν—¬ν…Œμ΄μ»€
      propertyaccess
      μ½”λ”©ν…ŒμŠ€νŠΈ
      μ΅œλ‹¨ 거리 μ•Œκ³ λ¦¬μ¦˜
      μ•Œκ³ λ¦¬μ¦˜
      unrealengine build system
      UnrealEngine
      κ·Έλž˜ν”„ 순회
      cpp
      UnrealEngine5
      κ²Œμž„ν”„λ‘œκ·Έλž˜λ°
    • 졜근 λŒ“κΈ€

    • 졜근 κΈ€

    • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
    Beankong_
    ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / level.1 / 체윑볡(C++)
    μƒλ‹¨μœΌλ‘œ

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