오늘부터 스프링에 대해 공부하고 정리를 좀 해야겠다! 한번 크게 봤지만 아직도 참 어렵다..! 틀린 내용이 있을 수 있으니 발견하시면 알려주세요..! 미리 감사합니다! 먼저 스프링 IoC 컨테이너와 빈에대해 알아보자! 스프링 IoC 컨테이너 IoC란 무엇일까? IoC는 Inversion of Control 이다 번역하면 제어의 역전이다 클래스 간의 의존 관계들을 여태까지는 사용자가 직접 제어했다면 IoC는 그러한 일들을 컨테이너를 통해 주입 받는것이다 사용자에서 컨테이너로 제어가 역전해서 제어의 역전이라고 표현하는 것 같다! 스프링 IoC 컨테이너 스프링 IoC 컨테이너는 Bean 설정 소스로부터 Bean의 정의를 읽어서 구성하고 제공한다 스프링 Bean이 만들어지면 이 곳에서 관리를 해준다! Appli..
문제가 참 완탐스럽게 생겼다 처음에는 그리디로 쭉 보는건가 싶었는데 하다보니.. 그냥 편하게 백트래킹으로 풀었따 모든경우의 수 중에서 가지치기를 하면서 보면 시간안에 빠르게 들어온다 먼저 총 15가지의 라운드가 있고 각 라운드는 3가지의 경우의 수가 가능하다 그래서 3^15의 경우의 수가 있다 이 중에서 우리는 4개의 입력으로 받은 조건들을 만족하는 경우를 찾아야 한다 그래서 입력조건을 벗어나는 경우는 적절하게 가지치기를 해줘야한다 나의 경우는 order라는 배열에 일단 15라운드의 prev VS next를 다 저장했다 ex) [A,B],[A,C],[A,D]...[E,F] 그 후 order배열에 0(prev 승),1(무),2(prev 패)를 넣어보면 된다 그러게 status라는 배열에 현재 라운드의 결과..
3개로 묶었을 때 그 중 가장 작은 옷값은 할인을 해준다 그럼 그리디로 생각해서 묶으면 된다 어차피 제일 큰건 할인 못받는다 3*k 번째로 큰 애들만 할인 받을 수 있다 편하게 pq에 값을 넣고 탐색해보자! 자바는 min heap 이므로 -를 붙여서 넣으면 최대힙으로 바꿀 수 있다 그리고 pq에서 하나씩 꺼내보며 만약 3*k 번째 옷이라면 값을 더하지 말자! 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.util.PriorityQueue; import java.util.Scanner; public class Solution { public static void mai..
숫자 제한들이 아주 작아서 그냥 제한 생각안하고 돌려도 잘 풀리는 문제다! 일단 인구이동을 어떻게 시킬지 생각해보자 간단하게 DFS를 이용하면 된다 나와 인접한 마을중 인구수 차이가 L이상 R 이하라면 그곳의 인구를 더해주고 체크해주자 이렇게 내가 갈 수 있는 마을의 모든 인구를 더하고 순서를 order에 담아 기억해주자 그럼 dfs가 끝나고 인구의 총 합 / 탐색한 마을로 order를 통해 사이좋게 나눠가지면 된다 이걸 언제까지해야할까 그냥 이동 할 일이 없을때까지 해보자! 이동이 없을 조건은 나 자신만 탐색하고 끝나는 경우다 그걸 cnt의 수가 1이하라면 안하는걸로 했다! 쉽게 생각하고 생각없이 짜면 잘 풀린다..! 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..