์ ‘๊ทผ๋ฐฉ๋ฒ•) ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํšŒ์˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋‘ ๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.
              1. ๋นจ๋ฆฌ ์‹œ์ž‘ํ•˜๋Š” ํšŒ์˜๋ฅผ ์šฐ์„  ๋ฐฐ์ •
              2. ๋นจ๋ฆฌ ๋๋‚˜๋Š” ํšŒ์˜๋ฅผ ๋‹ค์Œ ์šฐ์„ ์ˆœ์œ„๋กœ ๋ฐฐ์ •
             ์ด๋ ‡๊ฒŒ ๋ฐฐ์น˜๊ฐ€ ๋๋‚˜๋ฉด ํšŒ์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„๊ณผ ๋‹ค์Œ ํšŒ์˜ ์‹œ์ž‘์‹œ๊ฐ„์„ ๋น„๊ตํ•ด์ฃผ์–ด ํšŒ์˜์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ฃผ๋ฉด ๋œ๋‹ค.

----------------

n = int(input())

 

d = [[0]*2 for _ in range(n)]
for i in range(n):
    s,e = map(int ,input().split())
    d[i][0] = s
    d[i][1] = e
   
   
d.sort(key = lambda x: (x[1], x[0]))
cnt = 1
use = d[0][1]
for i in range(n-1):
    if use <= d[i+1][0]:
        cnt += 1
        use = d[i+1][1]

 

print(cnt)
       
   
   

 

์ ‘๊ทผ๋ฐฉ๋ฒ•) 

๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์˜ ํ•ฉ์ด ๊ฐ€์žฅ ์ž‘๊ฒŒ ๋‚˜์˜ฌ๋ ค๋ฉด ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ์ ์€ ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ n๋ฒˆ์งธ ์‚ฌ๋žŒ ์†Œ์š”์‹œ๊ฐ„ + n-1๋ฒˆ์งธ ์‚ฌ๋žŒ ์†Œ์š”์‹œ๊ฐ„์˜ ํ•ฉ์„ ๋” ํ•ด์ค€ ๋‹ค์Œ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

 

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

n = int(input())
array = list(map(int,input().split()))

array.sort()

   

for i in range(1,n):
    array[i] = array[i] + array[i-1]

print(sum(array))
 
์ ‘๊ทผ๋ฐฉ์‹
- ์ตœ์†Œ ๋ด‰์ง€์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๋ณด๋‹จ 5๋กœ ๋งŽ์ด ๋‚˜๋ˆ„์–ด์•ผํ•œ๋‹ค.
  ๋”ฐ๋ผ์„œ ํ‚ฌ๋กœ๊ทธ๋žจ์—์„œ 3์”ฉ ๋งˆ์ด๋„ˆ์Šค๋ฅผ ํ•ด์ฃผ์–ด 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š”์ง€ ํ™•์ธํ•˜์˜€๋‹ค.
  3์„ ๊ณ„์† ๋นผ์ฃผ์–ด n์ด ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๋Š” -1์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.
 
 
 
n = int(input())
cnt =0

while n >0:
    if n%5 == 0:
        cnt += n//5
        break
    n -= 3
    cnt +=1

if n >=0:
    print(cnt)
else:
    print(-1)
 
 
ํ’€์ด ์ค‘์— dp ๋ฐฉ์‹์œผ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฑฐ ๊ฐ™์•„์„œ ์ฝ”๋”ฉ์„ ํ•ด๋ณด์•˜๋‹ค.
 
-------------
n = int(input())

d = [10001] *(n+1)
cnt = 0

d[0] = 0
d[3] = 1
for i in range(5,n+1):
    d[i] = min(d[i-3],d[i-5]) + 1

if d[n] == 10001:
    print(-1)
else:
    print(d[n])
   

+ Recent posts