Skip to content

Conversation

@YoonYn9915
Copy link
Member

@YoonYn9915 YoonYn9915 commented Jun 28, 2025

🌱WIL

이번 한 주의 소감을 작성해주세요!

  • 몇 넌 전에 알고리즘 수업 들을때 다익스트라는 생각도 안하고 바로 손코딩 가능했었는데, 문제 안 푼지 한 6개월 되니까 다익스트라 고민하다 제한 시간이 끝났다. 따로 알고리즘 유형을 공부해서 정리하지는 않았는데 너무 잘 까먹어서 해야 하나 생각중이다. 주중에는 피곤하니까 이번 주말부터 하나씩 시작..

🚀주간 목표 문제 수: 3개

푼 문제


백준 #1504. 특정한 최단 경로: 그래프, 다익스트라 / 골드 4

정리한 링크: (바로가기)

🚩제출한 코드

import sys
import heapq

input = sys.stdin.readline
INF = float('inf')

N, E = map(int, input().split())
graph = [[] for _ in range(N + 1)]
for _ in range(E):
    a, b, c = map(int, input().split())
    graph[a].append((b, c))
    graph[b].append((a, c))
v1, v2 = map(int, input().split())



def dijkstra(start, end):
    dist = [INF] * (N + 1)
    dist[start] = 0
    hq = [(0, start)]
    while hq:
        len, node = heapq.heappop(hq)
        if len > dist[node]:
            continue
        for next_node, val in graph[node]:
            if dist[next_node] > dist[node] + val:
                dist[next_node] = dist[node] + val
                heapq.heappush(hq, (dist[next_node], next_node))
    return dist[end]


path1 = dijkstra(1, v1) + dijkstra(v1, v2) + dijkstra(v2, N)
path2 = dijkstra(1, v2) + dijkstra(v2, v1) + dijkstra(v1, N)

print(-1) if path1 >= INF and path2 >= INF else print(min(path1, path2))

💡TIL

배운 점이 있다면 입력해주세요

  • 다익스트라 알고리즘 복습...

  • int(1e9)
    의미: **1,000,000,000 (10억)**을 정수로 표현한 값입니다.
    사용 예시: 알고리즘 문제에서 "무한"에 가까운 큰 수로 자주 사용됩니다.
    float형으로 표현된 1e9는 부동소수점 숫자(1000000000.0)이지만,
    int()로 감싸 정수로 변환합니다.

  • sys.maxsize
    의미: 운영체제와 파이썬 구현에 따라 결정되는, 파이썬에서 쓸 수 있는 가장 큰 정수 값 중 하나입니다.
    값: 보통 64비트 시스템에서 9223372036854775807
    사용 예시: heapq 등에서 기본 우선순위를 매우 크게 설정할 때 사용됩니다.
    sys.maxsize는 실제로 정수 타입의 한계는 아니고, 리스트 등 자료구조 최대 크기 판단에 쓰입니다.
    파이썬의 int는 사실상 무한 정밀도(메모리가 허락하는 한 크기 제한 없음).

  • float('inf')
    의미: **양의 무한대 (+∞)**를 표현하는 부동소수점 값입니다.
    사용 예시: 비교할 수 없는 값, 무한 루프 탈출 조건, 그래프 알고리즘에서 거리 초기화 등.
    float('-inf')로 음의 무한대도 표현 가능.


백준 #1753. 최단 경로: 그래프, 다익스트라 / 골드 4

정리한 링크: (바로가기)

🚩제출한 코드

import heapq
import sys

input = sys.stdin.readline

V, E = map(int, input().split())
start = int(input())
graph = [[] for _ in range(V + 1)]

for _ in range(E):
    u, v, w = map(int, input().split())

    graph[u].append((v, w))


def dijkstra(start):
    distances = [float("inf")] * (V + 1)
    distances[start] = 0
    q = []
    heapq.heappush(q, (distances[start], start))

    while q:
        cnt_distance, node = heapq.heappop(q)

        if distances[node] < cnt_distance:
            continue

        for adjacency_node, distance in graph[node]:
            cal_distance = distances[node] + distance

            if cal_distance < distances[adjacency_node]:
                distances[adjacency_node] = cal_distance
                heapq.heappush(q, (cal_distance, adjacency_node))

    return distances


result = dijkstra(start)

for i in range(1, len(result)):
    print("INF" if result[i] == float("inf") else result[i])

💡TIL

배운 점이 있다면 입력해주세요


백준 #15905. 스텔라가 치킨을 선물했어요: 구현 / 실버 5

정리한 링크: (바로가기)

🚩제출한 코드

N = int(input())

arr = []

for _ in range(N):
    q, p = list(map(int, input().split()))
    arr.append([q, p])

arr.sort(reverse=True)

count = 0
for i in range(5, len(arr)):
    if arr[4][0] == arr[i][0]:
        count += 1
    else:
        break

print(count)

💡TIL

배운 점이 있다면 입력해주세요

@YoonYn9915 YoonYn9915 self-assigned this Jun 28, 2025
@Mingguriguri Mingguriguri merged commit 81f09af into main Jul 1, 2025
@github-actions
Copy link

github-actions bot commented Jul 1, 2025

🔥2025-06 챌린지 진행 상황

👉 그리디

  • YoonYn9915: 0개 ❌
  • Mingguriguri: 0개 ❌
  • zaqquum: 0개 ❌

👉 구현

  • YoonYn9915: 3개 ❌
  • Mingguriguri: 1개 ❌
  • zaqquum: 5개 ✅

@github-actions
Copy link

github-actions bot commented Jul 1, 2025

🔥2025-06 챌린지 진행 상황

👉 그래프

  • YoonYn9915: 5개 ✅
  • Mingguriguri: 4개 ❌
  • zaqquum: 6개 ✅

👉 구현

  • YoonYn9915: 3개 ❌
  • Mingguriguri: 1개 ❌
  • zaqquum: 5개 ✅

2 similar comments
@github-actions
Copy link

github-actions bot commented Jul 1, 2025

🔥2025-06 챌린지 진행 상황

👉 그래프

  • YoonYn9915: 5개 ✅
  • Mingguriguri: 4개 ❌
  • zaqquum: 6개 ✅

👉 구현

  • YoonYn9915: 3개 ❌
  • Mingguriguri: 1개 ❌
  • zaqquum: 5개 ✅

@github-actions
Copy link

github-actions bot commented Jul 1, 2025

🔥2025-06 챌린지 진행 상황

👉 그래프

  • YoonYn9915: 5개 ✅
  • Mingguriguri: 4개 ❌
  • zaqquum: 6개 ✅

👉 구현

  • YoonYn9915: 3개 ❌
  • Mingguriguri: 1개 ❌
  • zaqquum: 5개 ✅

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants