๐Ÿ“Œ ํŒŒ์ด์ฌ ์œผ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

์ •์ˆ˜ n, left, right๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ 1์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  1. nํ–‰ n์—ด ํฌ๊ธฐ์˜ ๋น„์–ด์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. i = 1, 2, 3, ..., n์— ๋Œ€ํ•ด์„œ, ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
    • 1ํ–‰ 1์—ด๋ถ€ํ„ฐ iํ–‰ i์—ด๊นŒ์ง€์˜ ์˜์—ญ ๋‚ด์˜ ๋ชจ๋“  ๋นˆ ์นธ์„ ์ˆซ์ž i๋กœ ์ฑ„์›๋‹ˆ๋‹ค.
  3. 1ํ–‰, 2ํ–‰, ..., nํ–‰์„ ์ž˜๋ผ๋‚ด์–ด ๋ชจ๋‘ ์ด์–ด๋ถ™์ธ ์ƒˆ๋กœ์šด 1์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  4. ์ƒˆ๋กœ์šด 1์ฐจ์› ๋ฐฐ์—ด์„ arr์ด๋ผ ํ•  ๋•Œ, arr[left], arr[left+1], ..., arr[right]๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ง€์›๋‹ˆ๋‹ค.

์ •์ˆ˜ n, left, right๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๊ณผ์ •๋Œ€๋กœ ๋งŒ๋“ค์–ด์ง„ 1์ฐจ์› ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

๐Ÿ“Œ ์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ n ≤ 107
  • 0 ≤ left  right < n2
  • right - left < 105

๐Ÿ“Œ ์ž…์ถœ๋ ฅ ์˜ˆ


์ถ”์ธก) 

nํ–‰ n์—ด๋กœ ์ˆซ์ž๋ฅผ ์ฑ„์šธ๋•Œ 1ํ–‰ 1์—ด์€ 1, 2ํ–‰ 2์—ด๊นŒ์ง€ 2, 3ํ–‰ 3์—ด๊นŒ์ง€ 3์„ ์ฑ„์šด ๋‹ค์Œ

๊ทธ๊ฑธ ํ–‰์„ ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ ํ•œํ–‰์œผ๋กœ ๋ถ™์ด๊ณ  ๊ทธ ์ „์ฒด ๋ฐฐ์—ด์—์„œ left๋ถ€ํ„ฐ right๊นŒ์ง€์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์„ returnํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ

 

๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์ผ๋‹จ nํ–‰ n์—ด์„ ์ฑ„์›Œ์ฃผ๋Š” ๋ฐฉ๋ฒ•

n์ด 6์ผ๋ผ๊ณ  ํ•˜๋ฉด

1, 2, 3, 4, 5, 6

2, 2, 3, 4, 5, 6

3, 3, 3, 4, 5, 6

4, 4, 4, 4, 5, 6

5, 5, 5, 5, 5, 6

6, 6, 6, 6, 6, 6

 

1, 2, 3, 4, 5, 6 / 2, 2, 3, 4, 5, 6 / 3, 3, 3, 4, 5, 6 / 4, 4, 4, 4, 5, 6 / 5, 5, 5, 5, 5, 6 / 6, 6, 6, 6, 6, 6

 

ํŒจํ„ด์„ ๋ณด๋ฉด 1๋ฒˆ ํ–‰์€ 1์ด 1๋ฒˆ๊นŒ์ง€, 2๋ฒˆ ํ–‰์€ 2๊นŒ์ง€ ๋ชจ๋‘ 2, 3๋ฒˆ ํ–‰์€ 3๊นŒ์ง€ 3 ์ด๋Ÿฐ์‹์˜ ํŒจํ„ด์„ ๋ฐ˜๋ณตํ•œ๋‹ค. 

๊ทธ๋Ÿผ i๋ฒˆ ํ–‰์ผ ๊ฒฝ์šฐ i๊นŒ์ง€ i๋ฅผ ๋ฐ˜๋ณต ๋‚˜๋จธ์ง€๋Š” +1์”ฉํ•˜์—ฌ ๊ทธ๋ฆฌ๊ณ  n์ด ๋˜๋ฉด ํ•œ ํ–‰์„ ์™„์„ฑ ์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–‰์„ ๋งŒ๋“ ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„์˜ ๋ฐฐ์—ด๋งŒ ์ž˜๋ผ return

 

 

์†Œ์Šค์ฝ”๋“œ) 

* 1์ฐจ) ์‹คํŒจ : 45์  ํ•˜๋‚˜๋นผ๊ณ  ๋ชจ๋‘ ์‹œ๊ฐ„์ดˆ๊ณผ

def solution(n, left, right):
    answer = []
    
    for i in range(0,n) :
        for j in range(0,n) :
            if j < i :
                answer.append(i+1)
            else:
                answer.append(j+1)
        
        if len(answer) > right+1 :
            return answer[left:right+1]

* 2์ฐจ) ์„ฑ๊ณต 

def solution(n, left, right):
    answer = []

    for i in range(left, right+1) :
        
        remain = (i % n) + 1
        share = int(i / n) + 1
        
        if remain > share :
            answer.append(remain)
        else :
            answer.append(share) 
    
    return answer

 

 

๋ฆฌ๋ทฐ) 

 

1์ฐจ)

์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์•ˆํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์ผ๋‹จ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ 

n์ด ์ผ๋‹จ 10์˜ 7์Šน๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹จ ๊ฑธ ์ƒ๊ฐํ•˜๋ฉด ๋ชจ๋“  ๋ฐฐ์—ด์„ ์ •๋ฆฌํ•˜๊ณ  ํ•˜๋Š” ๋ฐฉ์‹์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ์— ์ง€๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. 

๋”ฑ left์™€ right ์‚ฌ์ด๋งŒ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ? 

 

์–ดํœด ์‚ฝ์งˆ ๋งŽ์ด ํ–ˆ๋‹ค ใ… 

์ฒ˜์Œ์—” 3๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ ์„œ (์ฒ˜์Œ์ค„, ๋ฐ˜๋ณต์ค„, ๋งˆ์ง€๋ง‰์ค„) for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๊ทธ ๋ฐฐ์—ด๋“ค์„ ๋˜ ๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ๋„ ํ•ด๋ดค๋‹ค.

์‚ฝ์งˆํ•ด๋ณธ ๋ฐฉ์‹

๊ทผ๋ฐ ์ผ๋‹จ ์ •ํ™•๋„๋„ ์•ˆ๋งž๊ณ  ๋ฐฉ์‹์ด ๋„ˆ๋ฌด ์ง€์ €๋ถ„ํ•˜๋‹ค๋Š” ๋А๋‚Œ์ด ๋“ค์–ด์„œ ์ตœ๋Œ€ํ•œ ๋ชจ๋“  ์ˆ˜๋ฅผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํŒ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 

 

์•„์˜ˆ left ~ right ์‚ฌ์ด์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด ์ธ๋ฑ์Šค ๊ฐ’์œผ๋กœ ํ•ด๋‹น ์ˆ˜๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ฐ”๋กœ appendํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰! ์„ฑ๊ณต!!

+ Recent posts