본문 바로가기

분류 전체보기46

[MST/Union-Find]최소 신장 트리와 크루스칼 알고리즘 최소 신장 트리 (Minimum Spanning Tree, MST) 신장 트리(Spanning Tree)는 그래프 내에 있는 모든 정점을 연결하면서, 사이클을 형성하지 않는 트리/그래프 를 말합니다. 그리고 최소 신장 트리는 각 간선이 가지고 있는 가중치의 합이 최소가 되는 신장 트리를 말합니다. 즉, 신장 트리를 최소한의 값으로 구성하는 경우를 뜻합니다. 최소 신장 트리를 구하는 2가지 대표적인 알고리즘이 있는데 프림과 크루스칼 알고리즘입니다. 프림 알고리즘은 노드(정점)를 기준으로 최소 신장 트리를 구하는 다익스트라 알고리즘과 유사한 구조의 bfs 알고리즘 입니다. 크루스칼 알고리즘은 간선을 기준으로 최소 신장 트리를 구하는 유니온 파인드를 활용하는 알고리즘입니다. 크루스칼 알고리즘 우선 주어진 그래.. 2023. 11. 26.
[Springboot]@WebMvcTest 사용 중 security csrf 오류 해결 0. @WebMvcTest 란? @WebMvcTest 는 웹(컨트롤러) 레이어에서의 테스트를 수행할 수 있도록 돕는 어노테이션입니다. presentation, web 레이어 관련 빈들만 로드(등록)하여 테스트를 수행하므로 @SpringBootTest에 비해 속도가 한결 빠릅니다. 관련 글 참고 : https://github.com/HanaHww2/WIL/blob/main/Spring/test-annotation.md 1. 빈 생성 오류 발생시 해결 방안 그러나 이런 특성으로 인해서 security를 활용하는 경우, 특정 빈들이 로드되지 않아 빈 생성 오류가 발생하기도 합니다. 저의 경우에는 토큰 파싱을 수행하는 필터 클래스와 관련된 빈들이 말썽이었고, 웹 레이어 테스트 수행에서 해당 필터의 기능이 테스트.. 2023. 11. 26.
Spring Security 기본 Spring Security 스프링 시큐리티는 스프링 기반의 어플리케이션의 보안(인증과 권한)을 담당하는 프레임워크를 말한다. 스프링 시큐리티(Spring Security)를 사용하면 편리하게 인증/인가를 구현할 수 있다. 만약 스프링 시큐리티를 사용하지 않았다면, 자체적으로 세션을 체크하고 리다이렉트 등을 해야 할 것이다. 스프링 시큐리티는 보안과 관련해서 체계적으로 많은 옵션들을 지원해준다. 스프링 시큐리티는 필터(Filter) 기반으로 동작하기 때문에 스프링 MVC 와 분리되어 관리 및 동작한다. 스프링 시큐리티 3.2부터는 XML로 설정하지 않고 자바 config 설정으로 간단하게 설정할 수 있도록 지원하고 있다. 자주 사용하는 보안 용어 접근 주체(Principal) :보호된 대상에 접근하는 유.. 2023. 10. 5.
2023 현대모비스 예선 - 상담원 인원 https://school.programmers.co.kr/learn/courses/30/lessons/214288 현대 모비스 경진대회 예선 문제가 떠서 그 중 1번 문제를 풀어보았다. 2번은 20점 나옴... 디버깅(?)은 보류 중이다ㅠ 나의 풀이 문제 유형은 구현인 것 같다. 브루트 포스와 정렬을 활용하는? 탑다운 디피? 를 이용해서 각 상담 유형의 멘토수 별 대기 시간을 2차원 배열에 저장했다. 최소 힙😍을 이용해서 최단 대기시간 상담원을 바로 탐색할 수 있도록 했다. 브루트 포스 + dfs 를 이용해서 모든 케이스의 대기 시간 조합을 구현한다. 기존 최소 시간을 초과해버리는 경우는 백트래킹하도록 한다. # 상담 유형 k # 멘토 수 n # 요청 from collections import defa.. 2023. 9. 29.