https://www.youtube.com/watch?v=d3R1s_OmwAk DFS와 BFS에 대한 해설은 이 영상을 참조하는게 좋을 것 같다. 나도 접근 방법을 아예 몰랐기 때문에 이 영상으로 공부했다. DFS는 깊이 우선, BFS 너비 우선 DFS는 한 곳만 죽어라 파고, BFS는 여러개를 골고루 판다는 느낌이다 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273import java.io.BufferedReader;import java.io.IOException;import java.io.InputStrea..
= 접근 과정 ( 틀림 ) = 이렇게 N개의 전구와, K가지의 색 => 최대 200개의 전구, 최대 20개의 색이므로 완전 탐색을 이용하면 시간 초과로 분명히 오답! => O(N!), 이유는 N개의 색이 모두 다 다를 수 있기 때문 이러한 문제는 DP를 이용해서 시간을 줄이는게 핵심이다. 처음 나는 재귀 함수를 이용해서, 이미 거친 전구들은 return하는 형식으로 문제를 접근했다. 1. int[] arr = new int[n] 배열에 1, 1, 2, 3, 3, 3, 2, 2, 1, 1의 값을 넣고 0번 index의 값을 2로 바꿨을 때, 인접한 값(1번 index)이 0번째 값(1)이랑 같을 때 같이 2로 변경해주고 아니면 return을 하는 형식으로 count를 했다. 2. 모든 값이 k로 다 통일 ..
뷰 리졸버 - InternalResourceViewResolver 스프링 부트는 InternalResourceViewResolver 라는 뷰 리졸버를 자동으로 등록하는데, 이때 application.properties 에 등록한 spring.mvc.view.prefix , spring.mvc.view.suffix 설정 정보를 사용해서 등록한다
우리는 에라토스테네스의 체(Sieve of Eratosthenes)라는 방법을 통해 보다 쉽게 소수를 찾아낼 수 있습니다. 이름 그대로 체를 통해 무언가를 걸러내듯이 소수를 찾는 방법입니다. 일반적으로 소수만 구하려면 2중 for문을 이용해 시간 복잡도는 O(N^2)라고 판단할 수 있다. 에라토스테네스의 체 알고리즘을 이용하면 시간 복잡도는 O(Nlog(logN))이다. 배수를 삭제하는 연산으로 바깥 for문을 생략하는 경우가 발생하기 때문이다. 찾을 범위까지 수를 나열한 다음, 소수가 아닌 1을 지웁니다. 1 다음으로 큰 소수인 2를 남겨두고 2의 배수를 모두 지웁니다. 2 다음으로 큰 소수인 3을 남겨두고 3의 배수를 모두 지웁니다. prime(n) 다음으로 큰 소수인 prime(n+1)을 남겨두고 ..