[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 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_
  • 전체
    였늘
    μ–΄μ œ
    • 전체 κΈ€ (141)
      • β›… Daily (0)
      • πŸ–₯️ Study Note (135)
        • Unreal Engine (5)
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • 🧭 Devlog (6)
        • μ˜€λ‹΅λ…ΈνŠΈ (2)
        • UE5 GameLift Server Test Project (1)
        • TIL (3)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
Beankong_
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] level.3 - 졜고의 μ§‘ν•©(C++)
μƒλ‹¨μœΌλ‘œ

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