https://school.programmers.co.kr/learn/courses/30/lessons/12945피보나치 수는 F(n) = F(n-1) + F(n-2) 가 적용되는 수로, 식과 같이 재귀로 풀 수 있다. 따라서, 처음에 재귀로 풀되, 메모이제이
https://school.programmers.co.kr/learn/courses/30/lessons/42884이 문제는 그리디 알고리즘으로, 특정 조건을 만족하는 최대/최소를 구하는 문제에 해당한다. 그리고, 값이 될 수 있는 범위가 생긴다. 그리디 알고리
두 크기가 같은 배열의 원소를 각각 하나씩 뽑아 곱한 것을 모두 더한 경우의 최소를 구하는 문제이다. 처음에는 모든 수를 곱하는 경우를 구하면 되겠구나 싶어서 배열 A를 모두 뽑는 순열 모두 구하고, 배열 B와 모든 원소를 곱한 합을 구하여 최솟값을 구하려 했다. 따라
https://school.programmers.co.kr/learn/courses/30/lessons/92335처음에는 k진수로 만들고, 맨 앞부터 탐색하며 0이 아닌 수가 나오면 문자열에 + 하고, 0이 오면 이제까지 더한 문자열을 isPrime함수에 넣
https://school.programmers.co.kr/learn/courses/30/lessons/42883총 길이에서 k개를 지워야 한다. 만약 k = 3 이고 123456을 지운다 하면 앞에 123을 지우면 된다.직관적으로, 맨 앞에서부터 4개씩 탐색
https://school.programmers.co.kr/learn/courses/30/lessons/42898DP문제이다. 어차피 오른쪽과 아래로만 움직이면 무조건 최단경로이기 때문에 이 부분은 신경쓰지 않아도 된다. (1, 1)을 1로 초기화 하고, 각
https://school.programmers.co.kr/learn/courses/30/lessons/12911문제를 읽고 가장 먼저 떠오른 방법은 n의 1의 갯수를 구해놓고, n에 1씩 더하며 n과 1의 갯수가 같은 수를 찾는 방법 이었다. 혹시 시간 초과
운영체제에서 배운 페이징 알고리즘이 나왔다. LRU(Least Recently Used) 알고리즘은 가장 오랫동안 참조되지 않은 페이지를 교체하는 알고리즘이다. 캐시의 메모리는 한정되어 있고, 한번 참조된 데이터는 캐시에 적재 되는데, 캐시가 꽉 찬 상태에서 cach
집합의 원소 수가 적은 것부터 정답 리스트에 포함시켜야 하는 문제이다. 예를 들면, 두번째 입출력 예에서 2 / 2,1 / 1,2,3 / 1,2,3,4 순으로 탐색하여 2, 1, 3, 4를 만들어야 한다. 처음에는 hashmap을 만들어, 원소 수 1부터 n까지 리스
https://school.programmers.co.kr/learn/courses/30/lessons/42861최소 비용으로 모든 정점을 연결해야 하는 문제다. 간선 비용을 기준으로 오름차순 정렬한다. 모든 간선을 탐색하며 union을 만든다. 모든 그래프가