[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - 졜고의 μ§‘ν•©(C++)

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

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

문제 μ„€λͺ…

μžμ—°μˆ˜ n 개둜 이루어진 쀑볡 μ§‘ν•©(multi set, νŽΈμ˜μƒ μ΄ν›„μ—λŠ” "μ§‘ν•©"으둜 톡칭) 쀑에 λ‹€μŒ 두 쑰건을 λ§Œμ‘±ν•˜λŠ” 집합을 졜고의 집합이라고 ν•©λ‹ˆλ‹€.

  1. 각 μ›μ†Œμ˜ 합이 Sκ°€ λ˜λŠ” 수의 μ§‘ν•©
  2. μœ„ 쑰건을 λ§Œμ‘±ν•˜λ©΄μ„œ 각 μ›μ†Œμ˜ κ³± 이 μ΅œλŒ€κ°€ λ˜λŠ” μ§‘ν•©

예λ₯Ό λ“€μ–΄μ„œ μžμ—°μˆ˜ 2개둜 이루어진 μ§‘ν•© 쀑 합이 9κ°€ λ˜λŠ” 집합은 λ‹€μŒκ³Ό 같이 4κ°œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }

그쀑 각 μ›μ†Œμ˜ 곱이 μ΅œλŒ€μΈ { 4, 5 }κ°€ 졜고의 μ§‘ν•©μž…λ‹ˆλ‹€.

μ§‘ν•©μ˜ μ›μ†Œμ˜ 개수 nκ³Ό λͺ¨λ“  μ›μ†Œλ“€μ˜ ν•© sκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 졜고의 집합을 return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • 졜고의 집합은 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬λœ 1차원 λ°°μ—΄(list, vector) λ‘œ return ν•΄μ£Όμ„Έμš”.
  • λ§Œμ•½ 졜고의 집합이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ— ν¬κΈ°κ°€ 1인 1차원 λ°°μ—΄(list, vector) μ— 1 μ„ μ±„μ›Œμ„œ return ν•΄μ£Όμ„Έμš”.
  • μžμ—°μˆ˜μ˜ 개수 n은 1 이상 10,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.
  • λͺ¨λ“  μ›μ†Œλ“€μ˜ ν•© sλŠ” 1 이상, 100,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

n s result
2 9 [4, 5]
2 1 [-1]
2 8 [4, 4]

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

μž…μΆœλ ₯ 예#1

문제의 μ˜ˆμ‹œμ™€ κ°™μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예#2

μžμ—°μˆ˜ 2개λ₯Ό κ°€μ§€κ³ λŠ” 합이 1인 집합을 λ§Œλ“€ 수 μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ -1이 λ“€μ–΄μžˆλŠ” 배열을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예#3

μžμ—°μˆ˜ 2개둜 이루어진 μ§‘ν•© 쀑 μ›μ†Œμ˜ 합이 8인 집합은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

{ 1, 7 }, { 2, 6 }, { 3, 5 }, { 4, 4 }

그쀑 각 μ›μ†Œμ˜ 곱이 μ΅œλŒ€μΈ { 4, 4 }κ°€ 졜고의 μ§‘ν•©μž…λ‹ˆλ‹€.

λ‚΄ ν•΄λ‹΅

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

using namespace std;

vector<int> solution(int n, int s) {
    vector<int> answer;
    if(n > s)
    {
        answer.push_back(-1);
        return answer;
    }
    ****
    // λͺ«μ„ n번 λ„£λŠ”λ‹€
    for(int i = 0; i < n; ++i)
    {
        answer.push_back(s/n);
    }
    
    // λ°°μ—΄μ˜ λ’€μ—μ„œλΆ€ν„° λ‚˜λ¨Έμ§€λ§ŒνΌ +1ν•΄μ€€λ‹€.
    for(int i = 1; i <= s%n; ++i)
    {
        ++answer[n-i];
    }

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

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

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.2 - μŠ€ν‚¬νŠΈλ¦¬(C++)  (0) 2023.06.02
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - μ•Όκ·Ό μ§€μˆ˜(C++)  (0) 2023.06.01
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.2 - κ·€ κ³ λ₯΄κΈ°(C++)  (0) 2023.05.30
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.2 - 무인도 μ—¬ν–‰(C++)  (0) 2023.05.23
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.2 - λ•…λ”°λ¨ΉκΈ°(C++)  (0) 2023.05.22
'πŸ–₯️ Study Note/Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.2 - μŠ€ν‚¬νŠΈλ¦¬(C++)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - μ•Όκ·Ό μ§€μˆ˜(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
      ν”„λ£Œκ·Έλž˜λ¨ΈμŠ€
      programmers
      ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
      OnlineSubsystem
      κ²Œμž„ ν”„λ‘œκ·Έλž˜λ°
      unrealengine build system
      κ²Œμž„ 개발
      unrealengine module
      μ½”λ”©ν…ŒμŠ€νŠΈ
      ν—¬ν…Œμ΄μ»€
      cpp
      UnrealEngine5
      그리디(greedy)
      μ΅œλ‹¨ 거리 μ•Œκ³ λ¦¬μ¦˜
      propertyaccess
    • 졜근 λŒ“κΈ€

    • 졜근 κΈ€

    • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
    Beankong_
    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - 졜고의 μ§‘ν•©(C++)
    μƒλ‹¨μœΌλ‘œ

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