Skip to content

Conversation

@learntosurf
Copy link
Collaborator

@learntosurf learntosurf commented Apr 9, 2025

๐ŸŒฑWIL

  • ์ฃผ์–ด์ง„ ์‹œ๊ฐ„ ๋‚ด์— ํ‘ธ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์šฐ์„  ํ˜ผ์ž ํž˜์œผ๋กœ ํ’€์–ด๋‚ด๊ธฐ ์œ„ํ•ด์„œ ํ›ˆ๋ จ์„ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฑธ ๊ธฐ์–ตํ•˜๊ธฐ!
  • ์ด๋ฒˆ์ฃผ์ฐจ ๋ฐœ์ œ/๊ณผ์ œ ๋ฌธ์ œ๋“ค์„ ์•„์ง ์ž˜ ์ดํ•ดํ•˜์ง€๋Š” ๋ชปํ•œ๊ฒƒ ๊ฐ™๋‹ค. ํ’€์ด๋ฅผ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๊ณ  ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๋ช‡๋ฒˆ ๋” ํ’€์–ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿš€์ฃผ๊ฐ„ ๋ชฉํ‘œ ๋ฌธ์ œ ์ˆ˜: 5๊ฐœ

ํ‘ผ ๋ฌธ์ œ


๋ฐฑ์ค€ #5582. ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด: DP / ๊ณจ๋“œ5

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

import sys 
input = sys.stdin.readline

S1 = list(input().strip())
S2 = list(input().strip()) 
n, m = len(S1), len(S2)

dp = [[0] * (m+1) for _ in range(n+1)]

max_len = 0

for i in range(1, n+1):
    for j in range(1, m+1):
        # ๋ฌธ์ž์—ด S1๊ณผ S2์˜ ํ˜„์žฌ ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ๋น„๊ต
        if S1[i-1] == S2[j-1]:
            dp[i][j] = dp[i-1][j-1] + 1 # ์ด์ „ ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์— ํ˜„์žฌ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธธ์ด๋ฅผ ์—ฐ์žฅ 
            max_len = max(max_len, dp[i][j])
        else:
            dp[i][j] = 0 # ๋‹ค๋ฅด๋ฉด ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ๋Š์–ด์ง 

print(max_len)

๋ฐฑ์ค€ #20542. ๋ฐ›์•„์“ฐ๊ธฐ: DP / ๊ณจ๋“œ3

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

n, m = map(int, input().split())
answer = input().strip()
correct = input().strip()

def calculate_score(n, m, answer, correct):
    # DP ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”
    prev = list(range(m + 1))
    curr = [0] * (m + 1)

    for i in range(1, n + 1):
        curr[0] = i
        for j in range(1, m + 1):
            # ํ˜„์žฌ ๋ฌธ์ž
            a, c = answer[i - 1], correct[j - 1]

            # ๋ณ€ํ™˜ ๋น„์šฉ ๊ณ„์‚ฐ
            if a == c or (a == 'i' and c in 'ijl') or (a == 'v' and c in 'vw'):
                cost = 0
            else:
                cost = 1

            # DP ์ ํ™”์‹
            curr[j] = min(
                prev[j] + 1,        # ์‚ญ์ œ
                curr[j - 1] + 1,    # ์ถ”๊ฐ€
                prev[j - 1] + cost  # ๋ณ€ํ™˜
            )

        # ํ˜„์žฌ ํ–‰์„ ์ด์ „ ํ–‰์œผ๋กœ ๋ณต์‚ฌ
        prev, curr = curr, prev

    # ์ตœ์†Œ ์ˆ˜์ • ํšŸ์ˆ˜ ๋ฐ˜ํ™˜
    return prev[m]

print(calculate_score(n, m, answer, correct))

๐Ÿ’กTIL

  • ํ˜ผ์ž์„œ ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•ด์„œ ์ •๋‹ตํ’€์ด๋“ค์„ ๋ณด๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜์˜€๋‹ค.
  • ๋‘ ๋ฌธ์ž์—ด ๊ฐ„์˜ ์ตœ์†Œ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ๋กœ, ๋ ˆ๋ฒค์Šˆํƒ€์ธ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋”ฐ๋ผ i์™€ v๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์ธ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์•ฝ๊ฐ„์˜ ๋ณ€ํ˜•์ด ํ•„์š”ํ•˜๋‹ค.
  • dp[i][j]๋Š” "๋‹ต์•ˆ์˜ ์ฒซ i๊ธ€์ž"๋ฅผ "์ •๋‹ต์˜ ์ฒซ j๊ธ€์ž"๋กœ ๋ฐ”๊พธ๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ํŽธ์ง‘ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.

๋ฐฑ์ค€ #2776.์•”๊ธฐ์™•: ์ด์ง„ํƒ์ƒ‰ / ์‹ค๋ฒ„4

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉํ”Œ๋กœ์šฐ (์„ ํƒ)

  • ์ˆ˜์ฒฉ1๊ณผ ์ˆ˜์ฒฉ2์— ๊ฐ๊ฐ ์ ํžŒ ์ˆซ์ž๋“ค์ด ์ฃผ์–ด์ง„๋‹ค.
  • ์ˆ˜์ฒฉ 2์˜ ๊ฐ ์ˆซ์ž๊ฐ€ ์ˆ˜์ฒฉ 1์— ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ, ์กด์žฌํ•˜๋ฉด 1, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ $N,M=1,000,000$์œผ๋กœ ๋งค์šฐ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ธ ํƒ์ƒ‰์ด ์ค‘์š”ํ•˜๋‹ค.
  • ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐœ์ˆ˜ $T$๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  • ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋งˆ๋‹ค ์ˆ˜์ฒฉ1, 2์˜ ์ˆซ์ž๋ฅผ ๊ฐ๊ฐ ์ €์žฅํ•œ๋‹ค.
  • ์ˆ˜์ฒฉ2์˜ ๊ฐ ์ˆซ์ž์— ๋Œ€ํ•ด, ์ˆ˜์ฒฉ1์˜ set์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์กด์žฌ์—ฌ๋ถ€์— ๋”ฐ๋ผ 1 ๋˜๋Š” 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

import sys 
input = sys.stdin.readline

T = int(input()) # ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ 

for _ in range(T):
    # ์ˆ˜์ฒฉ1
    N = int(input()) 
    note1 = set(map(int, input().split()))
    # ์ˆ˜์ฒฉ2
    M = int(input()) 
    note2 = list(map(int, input().split())) 

    for num in note2:
        if num in note1:
            print(1)
        else:
            print(0)

๐Ÿ’กTIL

  • note1์˜ ์ˆซ์ž๋ฅผ list()๋กœ ๋ฐ›์œผ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. โ†’ set()์œผ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
    • ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธํ•œ๋‹ค. ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” $O(N)$์ด๋‹ค.
      ์ฆ‰, ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.
    • set์€ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” $O(1)$์ด๋‹ค.
      ์ฆ‰, set์—์„œ๋Š” ๊ฐ’์„ ๋ฐ”๋กœ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • in(): ์–ด๋–ค ๊ฐ’์ด ํŠน์ • ์‹œํ€€์Šค(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋ฌธ์ž์—ด ๋“ฑ) ํ˜น์€ ์ปฌ๋ ‰์…˜(๋”•์…”๋„ˆ๋ฆฌ, ์ง‘ํ•ฉ ๋“ฑ) ์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
  • ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ํด ๋•Œ, ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด $O(Nร—M)$์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. note2์˜ ๊ฐ ์ˆซ์ž์— ๋Œ€ํ•ด note1์„ ํ•œ๋ฒˆ์”ฉ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.
  • set์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ์ƒ‰์ด $O(1)$๋กœ ์ตœ์ ํ™”๋˜๋ฏ€๋กœ, ์ „์ฒด ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ $O(N+M)$๋กœ ์ค„์–ด๋“ค์–ด ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
  • ์ด์ง„ํƒ์ƒ‰(Binary Seacrh): ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ขํ˜€๊ฐ€๋ฉฐ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ์‹œ์ž‘์ , ๋์ , ์ค‘๊ฐ„์ ์„ ์ด์šฉํ•˜์—ฌ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  • ์ฐพ์œผ๋ ค๋Š” ๋ฐ์ดํ„ฐ์™€ ์ค‘๊ฐ„์  ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„๊ตํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ณผ์ •์ด๋‹ค.
    • ํ•œ ๋ฒˆ ํ™•์ธํ•  ๋•Œ๋งˆ๋‹ค ํ™•์ธํ•˜๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ˆ๋ฐ˜์”ฉ ์ค„์–ด๋“ ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ $O(\log N)$์ด๋‹ค.
  • ์ด์ง„ํƒ์ƒ‰์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • (1) ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

         **def binary_search(array, target, start, end):**
       		  # ํƒ์ƒ‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฒ”์œ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Œ 
             if start > end:
                 return None
             **mid = (start + end) // 2**
             # ์ฐพ์€ ๊ฒฝ์šฐ ์ค‘๊ฐ„์  ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜
             if array[mid] == target:
                 return mid
             # ์ค‘๊ฐ„์ ์˜ ๊ฐ’๋ณด๋‹ค ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์ž‘์€ ๊ฒฝ์šฐ ์™ผ์ชฝ ํ™•์ธ
             elif array[mid] > target:
                 return binary_search(array, target, start, mid-1) # ๋์ ์„ ์ค‘๊ฐ„์  ์™ผ์ชฝ์œผ๋กœ ์ด๋™
             # ์ค‘๊ฐ„์ ์˜ ๊ฐ’๋ณด๋‹ค ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ ์˜ค๋ฅธ์ชฝ ํ™•์ธ
             else:
                 return binary_search(array, target, mid+1, end) # ์‹œ์ž‘์ ์„ ์ค‘๊ฐ„์  ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™
         
         # n(์›์†Œ์˜ ๊ฐœ์ˆ˜)์™€ target(์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด)์„ ์ž…๋ ฅ๋ฐ›๊ธฐ
         n, target = list(map(int, input().split()))
         # ์ „์ฒด ์›์†Œ ์ž…๋ ฅ๋ฐ›๊ธฐ
         array = list(map(int, input().split()))
         
         # ์ด์ง„ ํƒ์ƒ‰ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
         result = binary_search(array, target, 0, n-1)
         
         if result == None: # ํƒ์ƒ‰๋ฒ”์œ„๊ฐ€ ์ค„์–ด๋“ค์—ˆ์Œ์—๋„ ์›์†Œ๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ 
             print("์›์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค")
         else:
             print(result+1) # {ํ•ด๋‹น ์›์†Œ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ธ๋ฑ์Šค+1}๋ฒˆ์งธ ์›์†Œ์ธ์ง€๋ฅผ ์ถœ๋ ฅ
    • (2) ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

         def binary_search(array, target, start, end):
         while start <= end:
             mid = (start + end) // 2
             # ์ฐพ์€ ๊ฒฝ์šฐ ์ค‘๊ฐ„์  ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜  
             if array[mid] == target:
                 return mid
             # ์ค‘๊ฐ„์ ์˜ ๊ฐ’๋ณด๋‹ค ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์ž‘์€ ๊ฒฝ์šฐ ์™ผ์ชฝ ํ™•์ธ
             elif array[mid] > target:
                 end = mid - 1
             # ์ค‘๊ฐ„์ ์˜ ๊ฐ’๋ณด๋‹ค ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ ์˜ค๋ฅธ์ชฝ ํ™•์ธ
             else:
                 start = mid + 1
         return None
      
      # n(์›์†Œ์˜ ๊ฐœ์ˆ˜)์™€ target(์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด)์„ ์ž…๋ ฅ๋ฐ›๊ธฐ
      n, target = list(map(int, input().split()))
      # ์ „์ฒด ์›์†Œ ์ž…๋ ฅ๋ฐ›๊ธฐ
      array = list(map(int, input().split()))
      
      # ์ด์ง„ ํƒ์ƒ‰ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
      result = binary_search(array, target, 0, n-1)
      
      if result == None:
         print("์›์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค")
      else:
         print(result+1)
    
    
  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•  ๋•Œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ, ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ, ์ž๋ฃŒํ˜•์˜ ํŠน์ง•์„ ๋ถ„์„ํ•˜์—ฌ ์ ํ•ฉํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•  ์ค„ ์•Œ์•„์•ผํ•œ๋‹ค.
  • ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์—์„œ์˜ ํƒ์ƒ‰ ๋ฌธ์ œ์—์„œ ์ด์ง„ ํƒ์ƒ‰์„ ๋ฐ”๋กœ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ–ˆ๋‹ค. ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์ด์ง„ ํƒ์ƒ‰์˜ ๊ฐœ๋…๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๋ฉฐ ์ตํ˜”๋‹ค.
    • ์ด์ง„ ํƒ์ƒ‰ ๋ฌธ์ œ๋Š” ํƒ์ƒ‰ ๋ฒ”์œ„๊ฐ€ ํฐ ์ƒํ™ฉ์—์„œ์˜ ํƒ์ƒ‰์„ ๊ฐ€์ •ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค. ํƒ์ƒ‰ ๋ฒ”์œ„๊ฐ€ 2,000๋งŒ์„ ๋„˜์–ด๊ฐ€๋ฉด ์ด์ง„ ํƒ์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•ด๋ณด์ž.
    • ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋‚˜ ๊ฐ’์ด 1,000๋งŒ ๋‹จ์œ„ ์ด์ƒ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉด ์ด์ง„ํƒ์ƒ‰๊ณผ ๊ฐ™์ด $O(\log N)$์˜ ์†๋„๋ฅผ ๋‚ด์•ผํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋– ์˜ฌ๋ ค์•ผ ํ’€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž.

๋ฐฑ์ค€ #1654. ๋žœ์„  ์ž๋ฅด๊ธฐ: ์ด์ง„ํƒ์ƒ‰ / ์‹ค๋ฒ„2

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉํ”Œ๋กœ์šฐ (์„ ํƒ)

  • $K$๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธธ์ด์˜ ๋žœ์„ ์„ ๋ชจ๋‘ $N$๊ฐœ์˜ ๊ฐ™์€ ๊ธธ์ด์˜ ๋žœ์„ ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
  • $N$๊ฐœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋žœ์„ ์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ •์ˆ˜๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์–ด๋–ค ๊ธธ์ด๋กœ ์ž˜๋ผ์•ผ ๋žœ์„  ๊ฐœ์ˆ˜์— ๋งž๋Š” ์ตœ๋Œ€ ๊ธธ์ด์˜ ๋žœ์„ ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์„์ง€ ํ•œ๋ˆˆ์— ์•Œ๊ธฐ ์–ด๋ ต๋‹ค. ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ขํ˜€ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  • ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ๋žœ์„ ์˜ ๊ธธ์ด๋ฅผ ์›€์ง์—ฌ๊ฐ€๋ฉฐ ๋žœ์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฑ„์šฐ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    • ์ด๋•Œ, 1์„ start๋กœ, ๋žœ์„  ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ธธ์ด๋ฅผ end๋กœ ๋‘”๋‹ค.
    • ๊ฒ€์ƒ‰๋งˆ๋‹ค ์ž˜๋ผ์ง€๋Š” ๋žœ์„  ๊ฐœ์ˆ˜์™€ ์›ํ•˜๋Š” ๋žœ์„  ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ ์›ํ•˜๋Š” ๋žœ์„  ๊ฐœ์ˆ˜๋ณด๋‹ค ์ž˜๋ผ์ง€๋Š” ๋žœ์„  ๊ฐœ์ˆ˜๊ฐ€ ์ ๋‹ค๋ฉด ์ž๋ฅด๋Š” ๋žœ์„ ์˜ ๊ธธ์ด๋ฅผ ์งง๊ฒŒ ํ•˜๊ณ , ์ž˜๋ผ์ง€๋Š” ๋žœ์„  ๊ฐœ์ˆ˜๊ฐ€ ์›ํ•˜๋Š” ๋žœ์„  ๊ฐœ์ˆ˜ ์ด์ƒ์ด๋ผ๋ฉด ๋žœ์„  ๊ธธ์ด๋ฅผ ๋” ๊ธธ๊ฒŒ ํ•œ๋‹ค.

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

import sys 
input = sys.stdin.readline

K, N = map(int, input().split())
lan = [int(input()) for _ in range(K)]

def binary_search(start, end):
    while start <= end:
        mid = (start + end) // 2
        lines = 0 # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ 
        for i in lan:
            lines += i // mid
        if lines >= N: # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์Œ (๋žœ์„ ์˜ ๊ธธ์ด๊ฐ€ ์งง์Œ)
            start = mid + 1
        else: # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์Œ (๋žœ์„ ์˜ ๊ธธ์ด๊ฐ€ ๊น€)
            end = mid - 1
    return end

print(binary_search(1, max(lan)))

๐Ÿ’กTIL

  • ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋“ค์€ ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ์ ‘๊ทผํ•ด์•ผํ•œ๋‹ค๋Š”๊ฒƒ์„ ๊นจ๋‹ซ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
    • ์–ด๋–ค ๊ฐ’์ด ์ตœ์ ์ธ์ง€ ์ง์ ‘์ ์œผ๋กœ ์•Œ๊ธฐ ์–ด๋ ต๊ณ , ๊ฐ€๋Šฅ์„ฑ์„ ํŒ๋ณ„ํ•˜๋ฉฐ ๋ฒ”์œ„๋ฅผ ์ขํ˜€์•ผํ•  ๋•Œ (์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ)
    • ๋ฌธ์ œ์—์„œ ๊ฐ’์ด ํŠน์ • ๋ฐฉํ–ฅ์œผ๋กœ ๋ณ€ํ•  ๋•Œ, ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ์—ฌ๋ถ€๊ฐ€ ๋‹จ์กฐ์ ์œผ๋กœ ๋ณ€ํ•œ๋‹ค.
      • ex. ๋žœ์„ ์˜ ๊ธธ์ด๋ฅผ ์ค„์ด๋ฉด ๊ฐœ์ˆ˜๋Š” ์ฆ๊ฐ€ํ•˜๊ณ , ๊ธธ์ด๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๊ฐœ์ˆ˜๋Š” ๊ฐ์†Œํ•œ๋‹ค.
  • ๋ฌธ์ œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํƒ์ƒ‰ ๋ฒ”์œ„(start, end)๋ฅผ ์ž˜ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

๋ฐฑ์ค€ #11663. ์„ ๋ถ„ ์œ„์˜ ์ : ์ด์ง„ํƒ์ƒ‰ / ์‹ค๋ฒ„3

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉํ”Œ๋กœ์šฐ (์„ ํƒ)

  • ์ผ์ฐจ์› ์ขŒํ‘œ์ƒ์˜ ์ ๊ณผ ์„ ๋ถ„์ด ์ฃผ์–ด์ง€๋ฉด, ๊ฐ๊ฐ์˜ ์„ ๋ถ„ ์œ„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ ์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ ์˜ ๊ฐœ์ˆ˜ $N$, ์„ ๋ถ„์˜ ๊ฐœ์ˆ˜ $M$, ์ ์˜ ์ขŒํ‘œ, $M$๊ฐœ์˜ ์„ ๋ถ„์˜ ์‹œ์ž‘์ ๊ณผ ๋์ 
  • ์ž…๋ ฅ ๋ฐ›์€ ์ ์˜ ์ขŒํ‘œ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.
  • ์ตœ์†Œ๊ฐ’์˜ index์™€ ์ตœ๋Œ€๊ฐ’์˜ index๋ฅผ ๋น„๊ตํ•ด โ€œ๊ฐœ์ˆ˜โ€๋งŒ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.
    • ์‹œ์ž‘์ ์— ๊ฐ€๊นŒ์šด ์ ์„ ์ฐพ๋Š” ์ด์ง„ํƒ์ƒ‰, ๋์ ์— ๊ฐ€๊นŒ์šด ์ ์„ ์ฐพ๋Š” ์ด์ง„ํƒ์ƒ‰
    • ๊ทธ ๋‘ ์  ์‚ฌ์ด์˜ ์  ๊ฐœ์ˆ˜๋ฅผ ์„ธ์„œ ์ถœ๋ ฅํ•œ๋‹ค. ์ฐพ์€ ์ ๋“ค์˜ index ์ฐจ๋ฅผ ๊ตฌํ•œ๋‹ค.
  • ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’์˜ index๋ฅผ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด ์ด์ง„ํƒ์ƒ‰์„ ๋‘๋ฒˆํ•˜๋ฏ€๋กœ for๋ฌธํ•˜๋‚˜+์ด์ง„ํƒ์ƒ‰ = ์‹œ๊ฐ„๋ณต์žก๋„ $O(N\log N)$์ด ๋˜์–ด ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

import sys 
input = sys.stdin.readline
from bisect import bisect_left, bisect_right

N, M = map(int, input().split())
points = list(map(int, input().split()))
lines = [tuple(map(int, input().split())) for _ in range(M)]

points.sort()

counts = []
for start, end in lines:
    left = bisect_left(points, start)  
    right = bisect_right(points, end)
    counts.append(right - left)

print("\n".join(map(str, counts)))

๐Ÿ’กTIL

  • ์  ์ขŒํ‘œ๋ฅผ ์ •๋ ฌํ•˜๋Š”๋ฐ๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ $O(N \log N)$์ด๊ณ , 2๊ฐœ์˜ ์ด์ง„ํƒ์ƒ‰์„ $M$๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” $O(M \log N)$์ด๋‹ค.
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” $O(N \log N + M \log N)$์ด๋‹ค.

๋ฐฑ์ค€ #2343. ๊ธฐํƒ€ ๋ ˆ์Šจ: DP / ์‹ค๋ฒ„1

์ •๋ฆฌํ•œ ๋งํฌ: (๋ฐ”๋กœ๊ฐ€๊ธฐ)

๐Ÿšฉํ”Œ๋กœ์šฐ (์„ ํƒ)

  • ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐ•์˜์˜ ์ˆ˜ $N$
    ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜ $M$

  • ๊ฐ€๋Šฅํ•œ ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ ์ค‘ ์ตœ์†Œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

  • ์กฐ๊ฑด

    • ๊ฐ•์˜ ์ˆœ์„œ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
    • $M$๊ฐœ์˜ ๋ธ”๋ฃจ๋ ˆ์ด๋กœ ๋ชจ๋“  ๊ฐ•์˜๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
    • ๋ชจ๋“  ๋ธ”๋ฃจ๋ ˆ์ด๋Š” ๊ฐ™์€ ์ฟ ๊ธฐ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.
  • ์˜ˆ์ œ ์ž…์ถœ๋ ฅ

    # ์˜ˆ์ œ ์ž…๋ ฅ
    9 3 
    1 2 3 4 5 6 7 8 9
    
    # ์˜ˆ์ œ ์ถœ๋ ฅ
    17
    • ๊ฐ•์˜๋Š” ์ด 9๊ฐœ์ด๊ณ , ๋ธ”๋ฃจ๋ ˆ์ด๋Š” ์ด 3๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    • 1๋ฒˆ ๋ธ”๋ฃจ๋ ˆ์ด์— 1,2,3,4,5 / 2๋ฒˆ ๋ธ”๋ฃจ๋ ˆ์ด์— 6,7,3 / 3๋ฒˆ ๋ธ”๋ฃจ๋ ˆ์ด์— 8,9๋ฅผ ๋„ฃ์œผ๋ฉด ๊ฐ ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๋Š” 15, 13, 17์ด ๋œ๋‹ค. ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๋Š” ๋ชจ๋‘ ๊ฐ™์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๋Š” 17์ด ๋œ๋‹ค. 17๋ณด๋‹ค ๋” ์ž‘์€ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ธ”๋ฃจ๋ ˆ์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.
  • ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๊ฐ€ ํƒ์ƒ‰ ๋Œ€์ƒ์ด๋‹ค.

    • start = max(time): ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋ ค๋ฉด, ๊ฐ€์žฅ ๊ธด ๊ฐ•์˜์˜ ๊ธธ์ด๊ฐ€ ๊ธฐ์ค€์ด๋‹ค. ๊ฐ€์žฅ ๊ธด ๊ฐ•์˜๋ณด๋‹ค ๋ธ”๋ฃจ๋ ˆ์ด๊ฐ€ ์ž‘์œผ๋ฉด ๊ทธ ๊ฐ•์˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • end = sum(time): ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๋ ค๋ฉด, ๋ชจ๋“  ๊ฐ•์˜๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ฃจ๋ ˆ์ด์— ๋‹ด์•„์•ผ ํ•˜๋ฏ€๋กœ, ๊ฐ•์˜ ๊ธธ์ด์˜ ํ•ฉ์ด ๊ธฐ์ค€์ด๋‹ค.
  • ์ด์ง„ ํƒ์ƒ‰์œผ๋กœ start์™€ end ์‚ฌ์ด์˜ ์ค‘๊ฐ„๊ฐ’์„ ์„ค์ •ํ•ด, ๋ธ”๋ฃจ๋ ˆ์ด ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋ฉฐ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

    • mid๋ฅผ ๋ธ”๋ฃจ๋ ˆ์ด ํฌ๊ธฐ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ, ๋ธ”๋ฃจ๋ ˆ์ด์— ๊ฐ•์˜๋ฅผ ๋‚˜๋ˆ„์–ด ๋‹ด๋Š”๋‹ค.
    • ๊ฐ•์˜๋ฅผ ๋‚˜๋ˆด์„ ๋•Œ ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜๊ฐ€ $M$ ์ดํ•˜๋ผ๋ฉด, ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์„œ ๋” ์ž‘์€ ๋ธ”๋ฃจ๋ ˆ์ด ํฌ๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.
    • ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜๊ฐ€ $M$์„ ์ดˆ๊ณผํ•˜๋ฉด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค์•ผ ํ•˜๋ฏ€๋กœ, ๋” ํฐ ๋ธ”๋ฃจ๋ ˆ์ด ํฌ๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

๐Ÿšฉ์ œ์ถœํ•œ ์ฝ”๋“œ

import sys 
input = sys.stdin.readline

N, M = map(int, input().split()) # ๊ฐ•์˜์˜ ์ˆ˜, ๋ธ”๋ฃจ๋ ˆ์ด์˜ ์ˆ˜ 
time = list(map(int, input().split())) # ๊ฐ•์˜์˜ ๊ธธ์ด 

# time.sort() # ๊ฐ•์˜์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์•ˆ๋จ 

# ํƒ์ƒ‰ ๋Œ€์ƒ: ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ 
start = max(time)
end = sum(time) 

while start <= end:
    mid = (start + end) // 2 
    
    total = 0 # ํ˜„์žฌ ๋ธ”๋ฃจ๋ ˆ์ด์— ๋‹ด์€ ๊ฐ•์˜ ๊ธธ์ด  
    count = 1  # ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜
    for t in time:
        if total + t > mid: # ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ 
            count += 1 # ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜ ์ฆ๊ฐ€
            total = 0 # ๋ธ”๋ฃจ๋ ˆ์ด์— ๋‹ด์€ ๊ฐ•์˜ ๊ธธ์ด ์ดˆ๊ธฐํ™”
        total += t # ๋ธ”๋ฃจ๋ ˆ์ด์— ๊ฐ•์˜ ์ถ”๊ฐ€
    
    # ๋ธ”๋ฃจ๋ ˆ์ด ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ด์ง„ํƒ์ƒ‰ ๋ฒ”์œ„ ์กฐ์ •
    if count <= M: 
        answer = mid # ๊ฐ€๋Šฅํ•œ ๋ธ”๋ฃจ๋ ˆ์ด ํฌ๊ธฐ ์ €์žฅ
        end = mid - 1 
    else: 
        start = mid + 1 

print(answer)

๐Ÿ’กTIL

  • ๊ฐ•์˜์˜ ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 10๋งŒ๊ฐœ, ๊ฐ•์˜์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 10,000๋ถ„, ๋ธ”๋ฃจ๋ ˆ์ด์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๊ฐ€ 1๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 10๋งŒ*10,000 = 10์–ต์ด๋‹ค. ์„ ํ˜• ํƒ์ƒ‰์ด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ถ„ ํƒ์ƒ‰์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.
  • $O(N * \log(sum(time) - max(time)))$
    • ๊ฐ€๋Šฅํ•œ ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ ๋ฒ”์œ„๋Š” [max(time), sum(time)] ์ด๋‹ค. ํƒ์ƒ‰ ๋ฒ”์œ„๊ฐ€ ์ ˆ๋ฐ˜์”ฉ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— $O(\log(sum(time) - max(time)))$์ด๋‹ค.
    • ๊ฐ ํƒ์ƒ‰ ๋‹จ๊ณ„์—์„œ ๊ฐ•์˜ ๋ฐฐ์—ด์„ ํ•œ๋ฒˆ ์ˆœํšŒํ•˜๋ฏ€๋กœ $O(N)$์ด๋‹ค.
  • ์ด์ง„ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ํƒ์ƒ‰ ๋Œ€์ƒ, ๊ทธ ๋Œ€์ƒ์˜ ๋ฒ”์œ„๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ถ€ํ„ฐ ์ •์˜ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.
  • ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์› ๋‹ค. ์ ‘๊ทผ๋ฒ•์„ ์ฐพ์•„๋ณด๊ณ ๋„ ๊ทธ๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•  ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ•์˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ณ , ๋ธ”๋ฃจ๋ ˆ์ด์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๊ฐœ์ˆ˜์™€ ๊ธธ์ด๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ์ž˜ ๊ธฐ์–ตํ•ด๋†“์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

@github-actions
Copy link

๐Ÿ”ฅ2025-04 ์ฑŒ๋ฆฐ์ง€ ์ง„ํ–‰ ์ƒํ™ฉ

๐Ÿ‘‰ ๊ทธ๋ž˜ํ”„

  • Mingguriguri: 5๊ฐœ โœ…
  • zaqquum: 0๊ฐœ โŒ
  • learntosurf: 8๊ฐœ โœ…

๐Ÿ‘‰ DP

  • Mingguriguri: 6๊ฐœ โœ…
  • zaqquum: 2๊ฐœ โŒ
  • learntosurf: 9๊ฐœ โœ…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants