ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 6010 Music Notes with Python
    PS 2022. 6. 3. 02:00
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 6010 Music Notes

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๋…ธ๋ž˜๋Š” ์Œํ‘œ N๊ฐœ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, i ๋ฒˆ์งธ ์Œํ‘œ๋Š” B_i ๋น„ํŠธ๋™์•ˆ ์ง€์†๋œ๋‹ค.
      N(1 <= N <= 50,000), B_i(1 <= B_i <= 10,000)
      ์–ด๋–ค ๋…ธ๋ž˜๋„ 5์–ต ๋น„ํŠธ ๋ณด๋‹ค ๊ธธ์ง€ ์•Š๋‹ค.
    1. 0์—์„œ ๋…ธ๋ž˜๋ฅผ ์—ฐ์ฃผํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉฐ, 0์—์„œ๋ถ€ํ„ฐ B_1 ์ „๊นŒ์ง€ ์Œํ‘œ 1๊ฐœ, ์‹œ๊ฐ„ B_1์—์„œ B_1 + B_2 ์ง์ „๊นŒ์ง€ ์Œํ‘œ 2๊ฐœ๋ฅผ ์—ฐ์ฃผํ•œ๋‹ค.
    1. T ์‹œ๊ฐ„๋ถ€ํ„ฐ T+1 ์ง์ „๊นŒ์ง€์˜ ๊ฐ„๊ฒฉ์—์„œ ์–ด๋–ค ์Œํ‘œ๋ฅผ ์—ฐ์ฃผํ•ด์•ผํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ.
    1. ์งˆ๋ฌธ์˜ ๊ฐœ์ˆ˜๋Š” Q๊ฐœ๊ฐ€ ์žˆ๋‹ค.
      Q(1 <= Q <= 50,000)
    1. ์งˆ๋ฌธ์€ T_i(0 <= T_i <= end_of_song)์œผ๋กœ ์ œ๊ณต๋œ๋‹ค.
    1. ์ด๋ถ„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n, m = map(int, stdin.readline().split())
    nums = []
    now = 0
    
    
    def solve(start, end, target):
        while end > start:
            mid = (start + end) // 2
            if nums[mid] < target:
                start = mid + 1
            else:
                end = mid
        return end
    
    
    for _ in range(n):
        count = int(stdin.readline())
        nums.append(now + count - 1)
        now += count
    nums.append(int(1e12))
    
    for _ in range(m):
        j = int(stdin.readline())
        it = solve(0, len(nums), j)
        print(it + 1)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    3 5
    2
    1
    3
    2
    3
    4
    0
    1

    ์‹คํ–‰๊ฒฐ๊ณผ

    2
    3
    3
    1
    1

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๋…ธํŠธ๋ฅผ ์ €์žฅํ•  ๋•Œ, ํ•ด๋‹น ๋…ธํŠธ์˜ ๋ฒ”์œ„ X๊ฐ€ (a <= X < b)์— ํ•ด๋‹นํ•œ๋‹ค๋ฉด, ์ตœ๋Œ“๊ฐ’ (b-1)๋งŒ ์ €์žฅํ•œ๋‹ค.
    1. T_i ๋ถ€๋ถ„์—์„œ ์ด๋ถ„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•œ๋‹ค.
      ์ด๋ถ„ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์˜จ end ๊ฐ’์—์„œ +1 ์„ ํ•ด์ฃผ๊ณ  ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

    ๐Ÿ’พ ๋ฐฐ์šด์ 

    1. ์ด๋ถ„ํƒ์ƒ‰์„ ํ†ตํ•ด์„œ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
    1. ์˜์–ด๋กœ ๋œ ๋ฌธ์ œ์˜ ์ง€๋ฌธ์„ ํ•ด์„ํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.