[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜

2025. 7. 14. 02:54ยท๐Ÿ“š ๋ฐฑ์ค€
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

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

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

programmers.co.kr

๋”๋ณด๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

์ฒ ํ˜ธ๋Š” ์ˆ˜์—ด์„ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А ๋‚  ์ฒ ํ˜ธ๋Š” ์–ด๋–ค ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์›ํ˜• ์ˆ˜์—ด์ด๋ž€ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด์—์„œ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์˜ ์ˆ˜์—ด์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด [7, 9, 1, 1, 4] ๋กœ ์›ํ˜• ์ˆ˜์—ด์„ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›ํ˜• ์ˆ˜์—ด์€ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋˜์–ด ๋Š๊ธฐ๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋„ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด๋ณด๋‹ค ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.
์›ํ˜• ์ˆ˜์—ด์˜ ๋ชจ๋“  ์›์†Œ elements๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • 3 ≤ elements์˜ ๊ธธ์ด ≤ 1,000
  • 1 ≤ elements์˜ ์›์†Œ ≤ 1,000

์ž…์ถœ๋ ฅ ์˜ˆ

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

์ž…์ถœ๋ ฅ ์˜ˆ #1
๊ธธ์ด๊ฐ€ 1์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [1, 4, 7, 9] ๋„ค ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธธ์ด๊ฐ€ 2์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [2, 5, 10, 11, 16] ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธธ์ด๊ฐ€ 3์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [6, 11, 12, 17, 20] ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธธ์ด๊ฐ€ 4์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [13, 15, 18, 21] ๋„ค ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธธ์ด๊ฐ€ 5์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [22] ํ•œ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋“ค ์ค‘ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ ์ œ์™ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ 18๊ฐ€์ง€์˜ ์ˆ˜๋“ค์„ ์–ป์Šต๋‹ˆ๋‹ค.
[1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22]

 

ํ’€์ด

์ด ๋ฌธ์ œ๋Š” ์›ํ˜•์œผ๋กœ ๊ฐ€์žฅ ๋๊ฐ’๊ณผ ์ฒ˜์Œ ๊ฐ’์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ž˜ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ‘ผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณต์‚ฌํ•ด temp_e ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

2. temp_e์—์„œ n๊ฐœ์”ฉ ๋ฌถ์–ด ํ•ฉ์„ ๊ตฌํ• ํ…๋ฐ, ๋’ค์— ๊ฐ€์žฅ ๋ ์š”์†Œ์™€ ์—ฐ๊ฒฐ๋˜๋Š” ์›์†Œ๋“ค์„ ๋ฏธ๋ฆฌ ๋ถ™์—ฌ์ค€๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, n์ด 3์ด๋ผ๋ฉด 3๊ฐœ์”ฉ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.
7, 9, 1, 1, 4์—์„œ 4, 7, 9๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฏธ๋ฆฌ 7, 9๋ฅผ ๋’ค์— ๋ถ™์—ฌ์ค€๋‹ค.
๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
i) n = 2 ์ธ ๊ฒฝ์šฐ, 7, 9, 1, 1, 4 => 7, 9, 1, 1, 4, 7
i) n = 3 ์ธ ๊ฒฝ์šฐ, 7, 9, 1, 1, 4 => 7, 9, 1, 1, 4, 7, 9
i) n = 4 ์ธ ๊ฒฝ์šฐ, 7, 9, 1, 1, 4 => 7, 9, 1, 1, 4, 7, 9, 1
์ด๋ ‡๊ฒŒ ๋ฏธ๋ฆฌ ๋ถ™์—ฌ ๋„ฃ์€ ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์ฃผ๋ฉด, ์‰ฝ๊ฒŒ ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. find_case๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด n๊ฐœ์”ฉ ๋ฌถ์–ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.

 

์ •๋‹ต ์ฝ”๋“œ

์œ„ ์ˆœ์„œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

def solution(elements):
    fin_list = [] # ์ตœ์ข…์ ์œผ๋กœ ๋ฐœ์ƒํ•œ ๋ชจ๋“  ํ•ฉ์„ ์ €์žฅํ•  ๋ฆฌ์ŠคํŠธํ˜•์˜ ๋ณ€์ˆ˜
    fin_list += elements # 1๊ฐœ์”ฉ ๋ฌถ๋Š” ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ์ถ”๊ฐ€
    fin_list.append(sum(elements)) # ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ์š”์†Œ์˜ ํ•ฉ์ด ๋˜๋ฏ€๋กœ ๋ฏธ๋ฆฌ ์ถ”๊ฐ€
    
    # ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ 2๊ฐœ์”ฉ, 3๊ฐœ์”ฉ, .. ์ „์ฒด๊ฐœ์ˆ˜-1๊ฐœ์”ฉ ๋ฌถ์—ˆ์„ ๋–„ ๋‚˜์˜ค๋Š” ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.
    for i in range(2, len(elements)) :
    	# find_case์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ’์„ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
        fin_list += find_case(i, elements)
    return len(set(fin_list)) # ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ, set์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ๊ธธ์ด ์ถœ๋ ฅ

# n๊ฐœ์”ฉ elements๋ฅผ ๋ฌถ์—ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ํ•ฉ์˜ ๊ฒฝ์šฐ๋“ค์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.
def find_case(n, elements) :
    temp_e = elements.copy() # ๋ณต์‚ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ์กด elements๊นŒ์ง€ ๋ฐ”๋€Œ๋ฏ€๋กœ copy()ํ•œ๋‹ค.
    sum_list = [] # ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•ฉ๋“ค์„ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธํ˜• ๋ณ€์ˆ˜
    for i in range(n-1) : # ๋ ์š”์†Œ์™€ ์—ฐ๊ฒฐ๋˜๋Š” ์•ž๋ถ€๋ถ„์˜ ์š”์†Œ๋“ค์„ ๋ฏธ๋ฆฌ ๋’ค์— ๋ถ™์—ฌ์ค€๋‹ค.
        temp_e.append(elements[i])
    for i in range(len(temp_e)-n+1): # ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ n๊ฐœ์”ฉ ๋ฌถ์–ด ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.
        temp = temp_e[i:i+(n%cnt)]
        sum_list.append(sum(temp))
    return sum_list

 

์ฝ”๋“œ์™€ ์˜†์— ์žˆ๋Š” ์ฃผ์„์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ์œผ๋ฉด ์ดํ•ด์— ๋งŽ์€ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

๋ฌผ๋ก  ์ด๋ ‡๊ฒŒ ํ‘ธ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๊ฑฐ์˜ ์—†์—ˆ์ง€๋งŒ, ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ..!

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ  (1) 2025.07.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : [1์ฐจ] ๋น„๋ฐ€์ง€๋„  (0) 2025.07.16
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ  (0) 2025.07.13
[DP] ํŒŒ์ด์ฌ์œผ๋กœ Dynamic Programming ์ •๋ณตํ•˜๊ธฐ  (0) 2025.07.13
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๊ทค ๊ณ ๋ฅด๊ธฐ  (0) 2025.06.28
'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : [1์ฐจ] ๋น„๋ฐ€์ง€๋„
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ
  • [DP] ํŒŒ์ด์ฌ์œผ๋กœ Dynamic Programming ์ •๋ณตํ•˜๊ธฐ
coram22
coram22
  • coram22
    ram2 ๐Ÿš—
    coram22
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (86)
      • ๐Ÿ’ง flutter (22)
      • ๐ŸŽ iOS (18)
      • ๐Ÿฉต CosPro (4)
        • python 2๊ธ‰ (4)
      • ๐Ÿˆ‍โฌ› git (3)
      • ๐Ÿ–ฅ๏ธ react (6)
      • ๐Ÿพ OS (1)
      • ๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (6)
      • ๐ŸŒƒ computer vision (6)
      • ๐Ÿ“š ๋ฐฑ์ค€ (11)
      • ๐Ÿฃ My Story (1)
      • ๐Ÿ’ป else (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿˆโ€โฌ› github ๐Ÿˆโ€โฌ›
    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๐Ÿฑ Github ๐Ÿฑ
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Swift
    ์ค‘๋„ํœดํ•™
    2๊ธ‰
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    FLUTTER
    ์˜ค๋ธ”์™„
    Computer Vision
    OpenCV
    ์ •๋‹ต
    ์ปด๋„ค
    React
    SwiftUI
    Git
    ๊ณต์‹๋ฌธ์„œ
    IOS
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    UIKit
    dart
    Xcode
    Python
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
coram22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜
์ƒ๋‹จ์œผ๋กœ

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