https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법재귀 알고리즘의 스테디 셀러 문제이며, 구현 과정은 다음과 같이 일반화를 통해 풀 수 있다.n-1개의 원판을 1번 기둥 -> 2번 기둥으로 옮긴다1개 (가장 큰) 원판을 1번 기둥 -> 3번 기둥으로 옮긴다.n-1개의 원판을 2번 기둥 -> 3번 기둥으로 옮긴다코드class Solution { int[][] ans; int idx = 0; public int[][] solution(int n) { ans = ..
https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법삼각형의 위에서 아래로 이어지는 경로의 값을 더할때, 최대값을 찾는 문제이다.DP가 직관적으로 생각났다.memo배열을 만들고 최대값을 기록하며 이동했고, 가장 아래행 원소의 값을 비교하면된다코드class Solution { public int solution(int[][] triangle) { int n = triangle.length; int[][] memo = new int[n][n]; m..
https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법최대 50만 길이의 배열이 input으로 들어온다. 즉 O(nlogn) 이하의 알고리즘이 가능하다입력 배열에 각각 [1,-1,1,-1 ,1,-1...] [-1,1 -1,1, -1,1...]을 곱한 두가지 케이스에서 최대 부분수열의 max값을 찾아야한다따라서 dp 배열에 0번 열에는 +값만, 1번 열에는 -값을 저장한다즉, (i,0) 에는 (i-1,1) + seq[i]값이 0보다 크면 들어온다. (i,1) 에는 (i-1,0) - se..
https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법5*10^7 이하의 자연수가 주어질때, 1,2,4만을 이용해서 숫자를 표현해야한다기본적으로 n진법을 구할때와 비슷하게 풀이했다다만 n이 3의 배수일때, 4를 추가해주고, n = n/3-1을 해주어야했다.코드class Solution { public String solution(int n) { StringBuilder answer = new StringBuilder(); while (n > 0) { ..
https://www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion?page=2&pageSize=5 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드package codetree;import java.io.*;import java.util.*;public class 루돌프의반란 { static int n,m,p,c,d; static int[][] map; static Santa[] santas; static boolean[] isOut; static Rudolph ru..
https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법데이터 범위가 n이 10억 이하, k가 50만 이하, enemy배열의 길이가 100만 이하 이다.따라서 enemy배열을 O(n^2)미만의 알고리즘으로 순회하며 답을 찾아야한다이전 공격을 저장했다가 가장 낮은 데미지의 공격과 현재 공격을 비교해가며 답을 찾았다.우선 k의 수만큼 pq(== 무적권 스킬을 쓸 라운드의 공격력들)에 담는다가장 낮은 공격력과 현재 공격력을 비교한다현재 공격력이 높다면 이걸 무적권을 써야하므로 pq에 넣는다아니..