๐Ÿ‘จโ€๐Ÿ’ป
Hamin TIL
  • Today I Learned ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป
  • ํšŒ๊ณ 
  • git
    • git_basics
      • Git 101
      • Git branch
      • Git_ignore
    • Git Book
    • ์šฐ์•„ํ•œํ˜•์ œ๋“ค
    • pull_request
  • db
    • DA
      • ๋ฐ์ดํ„ฐํ‘œ์ค€ํ™”
      • ๋ฐ์ดํ„ฐ_์š”๊ฑด๋ถ„์„
      • ์ „์‚ฌ์•„ํ‚คํ…์ฒ˜_์ดํ•ด
      • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง
    • SQL
      • SQL๊ธฐ๋ณธ๋ฐํ™œ์šฉ
        • SQLํ™œ์šฉ
          • ์ ˆ์ฐจํ˜•SQL
          • ๊ณ„์ธตํ˜•์งˆ์˜์™€์…€ํ”„์กฐ์ธ
          • DCL
          • ๊ทธ๋ฃนํ•จ์ˆ˜
          • ์œˆ๋„์šฐํ•จ์ˆ˜
          • ํ‘œ์ค€์กฐ์ธ
          • ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž
          • ์„œ๋ธŒ์ฟผ๋ฆฌ
        • SQL๊ณ ๊ธ‰ํ™œ์šฉ๋ฐํŠœ๋‹
          • ์˜ตํ‹ฐ๋งˆ์ด์ €์™€์‹คํ–‰๊ณ„ํš
          • ์กฐ์ธ์ˆ˜ํ–‰์›๋ฆฌ
          • ์ธ๋ฑ์Šค๊ธฐ๋ณธ
        • SQL๊ธฐ๋ณธ
          • ํ•จ์ˆ˜
          • ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐœ์š”
          • GROUPBY,HAVING์ ˆ
          • DDL
          • ์กฐ์ธ
          • ORDERBY์ ˆ
          • DML
          • WHERE์ ˆ
          • TCL
      • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜์ดํ•ด
        • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๊ณผ์„ฑ๋Šฅ
          • ์ •๊ทœํ™”์˜ ์„ฑ๋Šฅ
          • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ตฌ์กฐ์™€์„ฑ๋Šฅ
          • ๋ถ„์‚ฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์„ฑ๋Šฅ
          • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ
          • ๋ฐ˜์ •๊ทœํ™”์™€ ์„ฑ๋Šฅ
          • ์„ฑ๋Šฅ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜ ๊ฐœ์š”
        • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜์ดํ•ด
          • ์‹๋ณ„์ž
          • ์†์„ฑ
          • ๊ด€๊ณ„
          • ์—”ํ„ฐํ‹ฐ
          • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ดํ•ด
    • DB
  • trouble
    • libomp
    • After macOS update, git command
    • system
  • algorithm
    • BOJ
      • ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ
      • 17825-์ฃผ์‚ฌ์œ„์œท๋†€์ด
      • 14888-์—ฐ์‚ฐ์ž๋ผ์›Œ๋„ฃ๊ธฐ
      • 14503-๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
      • 10157
      • 14502-์—ฐ๊ตฌ์†Œ
      • 18428-๊ฐ์‹œํ”ผํ•˜๊ธฐ
      • 14501
      • 18405-๊ฒฝ์Ÿ์ ์ „์—ผ
      • 14499-์ฃผ์‚ฌ์œ„๊ตด๋ฆฌ๊ธฐ
      • 16236-์•„๊ธฐ์ƒ์–ด
      • 15686-์น˜ํ‚จ๋ฐฐ๋‹ฌ
      • 19237-์–ด๋ฅธ์ƒ์–ด
      • 16234-์ธ๊ตฌ์ด๋™
      • 19236-์ฒญ์†Œ๋…„์ƒ์–ด
      • 1339-๋‹จ์–ด์ˆ˜ํ•™
      • ๋ฆฌ๋ชจ์ฝ˜
      • 18353 - ๋ณ‘์‚ฌ๋ฐฐ์น˜ํ•˜๊ธฐ
      • 18352-ํŠน์ •๊ฑฐ๋ฆฌ์˜๋„์‹œ์ฐพ๊ธฐ
      • 12100-2048
      • N-Queen
      • 3190-๋ฑ€
      • 11724
    • programmers
      • ์˜์–ด๋๋ง์ž‡๊ธฐ
      • ๊ธฐ๋‘ฅ๊ณผ ๋ณด
      • H - index
      • ์ •์ˆ˜์‚ผ๊ฐํ˜•
      • 2018 KAKAO BLIND RECRUITMENT - ์••์ถ•
      • ์‚ผ๊ฐ๋‹ฌํŒฝ์ด
      • ๊ฑฐ์Šค๋ฆ„๋ˆ
      • [1์ฐจ] ์…”ํ‹€๋ฒ„์Šค
    • data_structure
      • Queue
      • Graph
      • Stack
      • Hash table
    • implementation
      • dynamic_programming
      • sort
      • Least common multiple
      • dfs
      • dijkstra
      • bfs
      • binary_search
    • aps
      • notes
    • modules
  • python
    • requirements.txt
    • Jupyter notebook
    • 00_๋“ค์–ด๊ฐ€๊ธฐ ์ „์—
    • Python Virtual Environment
    • Python Syntax
  • django
    • Class Based View in Django
    • Model in Django
    • URL Name
    • Form and ModelForm
    • Authentication
    • Tips & Tricks
    • Optimization
    • Request and Response Objects
    • Templates
    • Variable Routing & DTL
    • Django REST API with JSON web token (JWT)
    • Intro to Django
    • Django REST Framework
    • Wrap-up
    • Image Upload
  • javascript
    • Ajax (Asynchronous Javascript And XML)
    • Document Object Model
    • Java Script 101
    • ES (ECMAscript)
  • java
    • Java 101
  • aws
    • beginning_cloud_computing_with_aws
      • 02 AWS ์ฃผ์š” ์„œ๋น„์Šค ์ดํ•ดํ•˜๊ธฐ
      • 01 ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค Cloud ๊ฐœ์š”
  • programming
    • Communication
    • CS_์šฉ์–ด์‚ฌ์ „
  • vue.js
    • 01_Vue.js_Intro
  • data_science
    • 01_๋ฐ์ดํ„ฐ์—์„œ์ธ์‚ฌ์ดํŠธ๋ฐœ๊ฒฌํ•˜๊ธฐ
    • pandas
    • 04_๋ฐ์ดํ„ฐ๋ถ„๋ฅ˜๋ชจ๋ธ
    • 02_ํ…์ŠคํŠธ๋งˆ์ด๋‹์ฒซ๊ฑธ์Œ
    • 05_์ข…ํ•ฉ์˜ˆ์ œ
    • 03_๋ฏธ๋ž˜๋ฅผ์˜ˆ์ธกํ•˜๋Š”๋ฐ์ดํ„ฐ๋ถ„์„
    • Statistics
      • ๋ชจ์ˆ˜์™€ ์ถ”์ •๋Ÿ‰
    • ํ†ต๊ณ„ํ•™๋…ธํŠธ
  • linux
    • Linux Commands
  • ide
    • VScode
    • Pycharm
  • html,css
    • HTML 101
    • CSS 101
  • colab
    • colab_101
  • ์˜์‚ฌ๊ฒฐ์ •๋‚˜๋ฌด๋ฐ๋ชจํ˜•๋น„๊ต
Powered by GitBook
On this page
  • 14501-ํ‡ด์‚ฌ
  • ๋ธŒ๋ฃจํŠธ ํฌ์Šค
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Was this helpful?

  1. algorithm
  2. BOJ

14501

Previous18428-๊ฐ์‹œํ”ผํ•˜๊ธฐNext18405-๊ฒฝ์Ÿ์ ์ „์—ผ

Last updated 4 years ago

Was this helpful?

14501-ํ‡ด์‚ฌ

๋ธŒ๋ฃจํŠธ ํฌ์Šค

  1. s_index ๋Š” ์ˆœ์—ด๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋ฝ‘์„ ๋•Œ ์‚ฌ์šฉํ•  ์ธ๋ฑ์Šค์ˆœ์„œ๋Œ€๋กœ ์ธ๋ฑ์Šค๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด

  2. ์šฐ์„  1๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๊ฒฝ์šฐ๋ถ€ํ„ฐ n ๊ฐœ ๋ชจ๋‘๋ฅผ ๋ฝ‘๋Š” ๋ฐ˜๋ณต๋ฌธ

  3. ๋ฝ‘์„ ๊ฐœ์ˆ˜๋งŒํผ ์ˆœ์—ด๋กœ ๋ฝ‘์„ ์ธ๋ฑ์Šค๋“ค์„ ์ถ”์ถœ

  4. ๋ฝ‘์€ ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด์„œ ์ƒ๋‹ด์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ

  5. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ•ด๋‹น์˜ ๊ธˆ์•ก ์ตœ๋Œ“๊ฐ’ ์—…๋ฐ์ดํŠธ

from itertools import combinations

n = int(input())
a = [list(map(int,input().split())) for _ in range(n)]
s_index = [i for i in range(n)]

def check(indexs):
    global money, n
    # ์ˆœ์—ด๋กœ ๋ฝ‘์€ ์ธ๋ฑ์Šค๋งŒ ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค
    temp = [0 for i in range(n)]
    for index in indexs:
        temp[index] = a[index]

    # temp ๊ฐ€๋Šฅํ•œ ๋ฐฐ์น˜์ธ์ง€ ๊ฒ€์‚ฌ
    for i in range(len(temp)):
        index = i
        if temp[i]:
            long = temp[i][0]
            # ์ธ๋ฑ์‹ฑ ๋ฒ”์œ„๊ฐ€ ๋„˜์–ด๊ฐ€์ง„ ์•Š๋Š”์ง€
            if index + long > n:
                return False
            # ์˜ค๋Š˜๋ถ€ํ„ฐ ์ƒ๋‹นํ•˜๋Š” ๋™์•ˆ ์•„๋ฌด๋„ ์•ˆ ์˜ค๋Š”์ง€
            for j in range(1, long):
                if temp[index + j]:
                    return False

    # ๊ฐ€๋Šฅํ•ด์„œ ์—ฌ๊ธฐ๊นŒ์ง€ ์™”์œผ๋‹ˆ ๋ˆ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์ž
    money = 0
    for i in range(len(indexs)):
        money += a[indexs[i]][1]
    return True

max_answer = 0
money = 0
# 1 ๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒƒ ๋ถ€ํ„ฐ N ๊ฐœ๋ฅผ ์ „๋ถ€ ๊ณ ๋ฅด๋Š” ์ˆœ์—ด๋“ค
for pic_num in range(1, n + 1):
    # ์ธ๋ฑ์Šค๋“ค ์ค‘์—์„œ ๋ช‡ ๊ฐœ ๊ณ ๋ฅผ์ง€ ๋งŒํผ ๋งŒํผ ์ˆœ์—ด๋กœ ๋ฝ‘์•„์ฃผ์ž
    pic_combination = list(combinations(s_index,pic_num))
    # pics ๋Š” ๋‚ด๊ฐ€ ๊ณ ๋ฅผ ์ธ๋ฑ์Šค๋“ค
    for pics in pic_combination:
        # ํ•ด๋‹น ์ธ๋ฑ์Šค๋“ค์„ ๊ณจ๋ž์„ ๋•Œ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜์ž
        if check(pics):
            # ๊ฐ€๋Šฅํ–ˆ๋‹ค๋ฉด ์ตœ๋Œ“๊ฐ’ ์—…๋ฐ์ดํŠธ
            max_answer = max(max_answer,money)

print(max_answer)

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ์ ํ™”์‹

    dp[i] = max(p[i] + d[t[i] + i], max_p)
  • ๋์—์„œ๋ถ€ํ„ฐ ๋งค๋ฒˆ ์„ ํƒํ•ด๋‚˜๊ฐˆ ๋•Œ, ์ง€๊ธˆ๊ฒƒ์„ ์ทจํ•˜๊ณ , ์ง€๊ธˆ ๊ฒƒ ์ƒ๋‹ด์ด ๋๋‚œ ํ›„์˜ dp[i] ๋ฅผ ๋”ํ•œ ๊ฒƒ๊ณผ, ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๋Œ“๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด์„œ ์ทจํ•ด๊ฐ

n = int(input())

# 0 ๋ฒˆ์งธ ๋‚ ์€ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋‹ˆ 0์œผ๋กœ ๋„ฃ์–ด์ฃผ๊ณ , ์ธ๋ฑ์‹ฑ์„ ์ผ์ฐจ๋ž‘ ๋งž์ถ”๊ธฐ ์œ„ํ•ด
t = [0]
p = [0]

for i in range(n):
    a, b = map(int,input().split())
    t.append(a)
    p.append(b)

d = [0] * (n + 1)
max_p = 0

# ์ธ๋ฑ์Šค n ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๋บด๊ฐ€๋ฉด์„œ 1๊นŒ์ง€
for i in range(n, 0, -1):

    # ์• ์ดˆ์— ํ˜„์žฌ ๊ฒƒ์ด ํ‡ด์‚ฌ๋‚  ์ „๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ์ง€ ๊ฒ€์ฆ
    if t[i] + i <= n + 1:
        #
        if i + t[i] > n:
            f = 0
        else:
            f = d[i + t[i]]
        d[i] = max(p[i] + f, max_p)
        max_p = d[i]
    else:
        d[i] = max_p

print(max_p)
www.acmicpc.net/problem/14501