2024/12 3

[Baekjoon] 백준 15686번 - 치킨 배달 by Python (백트래킹)

https://www.acmicpc.net/problem/15686 아이디어치킨집의 개수 C개의 경우 C개의 치킨집 중 M개를 선택하는 모든 조합 : 1716개 조합각 조합에 대해 모든 집의 치킨 거리 계산(집의 개수 H, 치킨집 개수 M) : 최악의 경우 1300최악의 경우 O(1716⋅1300)≈2,230,800  즉 2.23×10^6 의 연산이 필요하기 때문에 브루투포스와 백트래킹을 활용해 모든 치킨집의 조합을 확인하며 계산하여 정답을 도출할 수 있다.  코드입력부N, M = map(int, input().split())city = [list(map(int, input().split())) for _ in range(N)]result = int(1e9)store = []house = []for i ..

카테고리 없음 2024.12.12

[Redis] 레디스를 활용한 Spring-boot 캐싱 적용 해결하기 (트러블 슈팅)

https://tech.namong.shop/faster-faster-cache사이드 프로젝트 팀 기술 블로그 주소  사이드 프로젝트에서 기존에 사용자 토큰에만 사용하던 redis를 활용해 자주 사용되면서 복잡한 쿼리가 발생하는 API에 대해 캐싱을 적용하게 되었습니다. 하지만, 캐싱을 적용하며 아래와 같은 에러들을 만날 수 있었습니다.LocalDateTime 직렬화 문제List 역직렬화 문제기본 생성자 문제 왜 에러가 발생했는지, 어떻게 해결했는지 함께 보겠습니다. 1. LocalDateTime 직렬화 문제캐시를 적용한 API에서 LocalDateTime 타입 필드가 Redis에 저장될 때 아래와 같은 직렬화 문제가 발생했습니다Error MessageCaused by: com.fasterxml.jack..

[Baekjoon] 백준 15591 - MooTube (Silver) by 파이썬 Python

https://www.acmicpc.net/problem/15591 문제 설명그래프와 유니온-파인드를 활용해 특정 조건을 만족하는 노드(동영상)들의 수를 구하는 문제이다. 그래프 구성동영상들은 노드, 동영상 쌍 간의 USADO 값은 간선의 가중치로 주어진다.총 N개의 노드와 N-1개의 간선이 있으며, 모든 노드는 하나의 연결 그래프를 이룬다. USADO 경로 계산: 두 노드 간의 USADO는 그들을 연결하는 경로의 간선 중 최솟값 아이디어처음 풀이로 BFS를 사용해 탐색했다. 하지만 시간초과가 발생했다. 따라서 union-find 를 사용해 해결했다. 또한 간선을 내림차순 정렬하여 K 이상의 간선만 처리하도록하여 효율성을 높였다. 코드노드 u가 속한 집합의 루트노드를 찾는 find 함수이다. 재귀함수를 ..

카테고리 없음 2024.12.01