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에 넣는다아니..