🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μž…κ΅­μ‹¬μ‚¬ (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μž…κ΅­μ‹¬μ‚¬ (level3, python)

    πŸ€” 풀이 μ½”λ“œ def check(n, times, k): can_enter = 0 for t in times: can_enter += k // t return True if can_enter >= n else False def solution(n, times): answer = 0 start = 0 end = min(times) * n mid = start while mid + 1 != end: mid = (start + end) // 2 if check(n, times, mid): end = mid else: start = mid return end πŸ€” 문제 풀이 μ΄λΆ„νƒμƒ‰μœΌλ‘œ 풀이해야 ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. 항상 이뢄 탐색은 μ‹œμž‘μ κ³Ό 끝점을 μž‘λŠ” κΈ°μ€€κ³Ό, μ–΄λ–€ 것을 이뢄탐색에 μ‚¬μš©ν•΄μ•Ό 할지 νŒλ‹¨ν•˜λŠ”κ²Œ μ–΄λ ΅λ„€..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 거리두기 ν™•μΈν•˜κΈ° (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 거리두기 ν™•μΈν•˜κΈ° (level2, python)

    πŸ€” 풀이 μ½”λ“œ from collections import deque def bfs(start, place): queue = deque() queue.append([start[0], start[1], 0]) visited = [[False for _ in range(5)] for _ in range(5)] visited[start[0]][start[1]] = True dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] candidate = [] while queue: a, b, dist = queue.popleft() for i in range(4): nx = dx[i] + a ny = dy[i] + b if 0

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ©€μ©‘ν•œ μ‚¬κ°ν˜• (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ©€μ©‘ν•œ μ‚¬κ°ν˜• (level2, python)

    πŸ€” 풀이 μ½”λ“œ import math def solution(w,h): return w * h - (w + h - math.gcd(w, h)) πŸ€” 문제 풀이 μ½”λ“œκ°€ μ§§μ•„μ„œ μ‰¬μš΄ 문제처럼 λ³΄μ΄μ§€λ§Œ, μ™œ μ €λŸ° 식이 λ‚˜μ™”λŠ”μ§€ μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. λ¬Έμ œμ—μ„œ λ‚˜μ˜¨ 이 μ˜ˆμ‹œλ₯Ό ν•œ 번 λ΄…μ‹œλ‹€. κ°€λ‘œ 8, μ„Έλ‘œ 12의 μ‚¬κ°ν˜•μœΌλ‘œ, μΌμ •ν•œ νŒ¨ν„΄μ΄ λ°˜λ³΅λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. μœ„μ™€ 같은 κ°€λ‘œ 2, μ„Έλ‘œ 3의 μ‚¬κ°ν˜•μ˜ νŒ¨ν„΄μ΄ μ—¬λŸ¬ 번 λ°˜λ³΅λ˜λŠ” κ²ƒμ²˜λŸΌ 보이죠. κ³„μ‚°ν•˜λ©΄, κ°€λ‘œ 8 μ„Έλ‘œ 12의 μ‚¬κ°ν˜•μ€, κ°€λ‘œ 2, μ„Έλ‘œ 3의 μ‚¬κ°ν˜•μ—μ„œ 선에 κ±Έλ¦¬λŠ” μ‚¬κ°ν˜•μ˜ 개수 * 4μž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ 4λΌλŠ” μˆ«μžλŠ”, 8κ³Ό 12의 μ΅œλŒ€ κ³΅μ•½μˆ˜μΈκ²ƒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ κ°€λ‘œ 2와 μ„Έλ‘œ 3은 μ„œλ‘œμ†Œ κ΄€κ³„μž„μ„ μ•Œ 수 있죠. λ”°λΌμ„œ μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό ..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ—¬ν–‰κ²½λ‘œ (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ—¬ν–‰κ²½λ‘œ (level3, python)

    πŸ€” 풀이 μ½”λ“œ from collections import deque import copy def bfs(start, ways, visited, n): queue = deque() queue.append([start, start, visited]) candidate = [] while queue: now, log, visit = queue.popleft() if len(log) == 4 * n - 1: candidate.append(log) continue for next in ways[now]: visited_key = now + next if visit[visited_key] != 0: visit[visited_key] -= 1 queue.append([next, log + " " + next, cop..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ””μŠ€ν¬ 컨트둀러 (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ””μŠ€ν¬ 컨트둀러 (level3, python)

    πŸ€” 풀이 μ½”λ“œ import heapq from collections import deque def solution(jobs): # jobs : [μž‘μ—…μ΄ μš”μ²­λ˜λŠ” μ‹œμ , μž‘μ—…μ˜ μ†Œμš”μ‹œκ°„] answer = [] job_queue = deque(sorted(jobs, key=lambda x : x[0])) heap = [] time = 0 while job_queue or heap: # μž‘μ—… νμ—μ„œ μ‹€ν–‰κ°€λŠ₯ν•œ νž™μœΌλ‘œ 이동 while job_queue and job_queue[0][0]

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ „λ ₯망을 λ‘˜λ‘œ λ‚˜λˆ„κΈ° (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ „λ ₯망을 λ‘˜λ‘œ λ‚˜λˆ„κΈ° (level2, python)

    πŸ€” 풀이 μ½”λ“œ import copy from collections import deque def bfs(start, tree, n): visited = [False for _ in range(n+1)] queue = deque() queue.append(start) visited[start] = True result = 1 while queue: now = queue.popleft() for next_node in tree[now]: if not visited[next_node]: queue.append(next_node) visited[next_node] = True result += 1 return result def solution(n, wires): answer = n adjust_arr = [[..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 뒀에 μžˆλŠ” 큰 수 μ°ΎκΈ° (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 뒀에 μžˆλŠ” 큰 수 μ°ΎκΈ° (level2, python)

    πŸ€” 풀이 μ½”λ“œ from collections import deque def solution(numbers): answer = [-1 for i in range(len(numbers))] stack = deque() for idx, now in enumerate(numbers): if not stack: stack.append([idx, now]) continue top_idx, top_now = stack[-1] while stack and now > top_now: stack.pop() answer[top_idx] = now if stack: top_idx, top_now = stack[-1] stack.append([idx, now]) return answer πŸ€” 문제 풀이 μš°μ„ , 문제의 쑰건을 보면..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 연속 λΆ€λΆ„ μˆ˜μ—΄ ν•©μ˜ 개수 (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 연속 λΆ€λΆ„ μˆ˜μ—΄ ν•©μ˜ 개수 (level2, python)

    🏝 문제 μ„€λͺ… μ² ν˜ΈλŠ” μˆ˜μ—΄μ„ 가지고 놀기 μ’‹μ•„ν•©λ‹ˆλ‹€. μ–΄λŠ λ‚  μ² ν˜ΈλŠ” μ–΄λ–€ μžμ—°μˆ˜λ‘œ 이루어진 μ›ν˜• μˆ˜μ—΄μ˜ μ—°μ†ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ˜ ν•©μœΌλ‘œ λ§Œλ“€ 수 μžˆλŠ” μˆ˜κ°€ λͺ¨λ‘ λͺ‡ 가지인지 μ•Œμ•„λ³΄κ³  μ‹Άμ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. μ›ν˜• μˆ˜μ—΄μ΄λž€ 일반적인 μˆ˜μ—΄μ—μ„œ 처음과 끝이 μ—°κ²°λœ ν˜•νƒœμ˜ μˆ˜μ—΄μ„ λ§ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μˆ˜μ—΄ [7, 9, 1, 1, 4] 둜 μ›ν˜• μˆ˜μ—΄μ„ λ§Œλ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μ›ν˜• μˆ˜μ—΄μ€ 처음과 끝이 μ—°κ²°λ˜μ–΄ λŠκΈ°λŠ” 뢀뢄이 μ—†κΈ° λ•Œλ¬Έμ— μ—°μ†ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄λ„ 일반적인 μˆ˜μ—΄λ³΄λ‹€ λ§Žμ•„μ§‘λ‹ˆλ‹€. μ›ν˜• μˆ˜μ—΄μ˜ λͺ¨λ“  μ›μ†Œ elementsκ°€ μˆœμ„œλŒ€λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ›ν˜• μˆ˜μ—΄μ˜ 연속 λΆ€λΆ„ μˆ˜μ—΄ ν•©μœΌλ‘œ λ§Œλ“€ 수 μžˆλŠ” 수의 개수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œμ‚¬ν•­ 3 ≤ elements의 길이 ≤ 1,000 1 ≤..