[프로그래머스] Lv.2 시소 짝꿍 (Java)
·
알고리즘/문제 풀이
문제https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이진탐색 이용 우선 몸무게를 오름차순으로 정렬한다.이제 몸무게가 a,b (a2a = 2b (즉 몸무게가 같은 경우, a=b)문제 조건에 의해 시소의 1(m)거리 지점에 앉을 수 없으므로 2a = 2b라고 나타낸 것이다.2a = b3a = 2b4a = 3bweights 배열을 오름차순으로 정렬한 뒤 weights[i]를 하나씩 방문하고, i보다 큰 j에 대해서 weights[i]와 시소 짝꿍이 되는 경우의 수를 만족하는 weights[j..
[백준] BOJ 12852번 1로 만들기 2 (Java)
·
알고리즘/문제 풀이
문제https://www.acmicpc.net/problem/12852 풀이1로 만들기 풀이와 유사하지만, x에서 1까지 어떤 숫자를 선택했는지를 저장해야 한다.next[x]는 x 다음 ( /3, /2, -1) 연산을 통해 어떤 숫자가 되어야 최소 작업으로 1이 될 수 있는 지를 저장한다. package boj.dp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Boj_12852_1로만들기2 { static int[] d; static int[] next; public static void main(String[] args) throws IOException { Bu..
[백준] BOJ 2579번 계단 오르기 (Java)
·
알고리즘/문제 풀이
문제https://www.acmicpc.net/problem/2579 풀이DP를 활용해서 풀면 된다. 문제에 나온 예제를 예로 들어보자.idx012345score[idx]102015251020 배열 d[idx] (dp)에 들어가는 값은 0부터 시작해서 idx번째 계단을 밟았을 때 얻을 수 있는 점수의 최댓값으로 정의한다. 문제 조건에 따라 마지막 계단은 반드시 밟아야 하는 상황이다.따라서 d[5]의 입장에서 시작해 보자. 5번째 계단을 밟으면 가능한 상황은 3번째 계단을 밟거나, 4번째 계단을 밟은 상황 두 가지이다.하지만 그렇다고 d[n] = max(d[n-1], d[n-2]) + score[n] 로 점화식을 세우면 안 된다. 문제에 명시된 "계단을 3개 연속해서 밟을 수 없다" 는 조건이 위배될 수 ..
[프로그래머스] Lv.2 두 큐 합 같게 만들기 (Java)
·
알고리즘/문제 풀이
문제https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이첫 번째 풀이 : 실패class Solution { public int solution(int[] queue1, int[] queue2) { int middleIndex = queue1.length; int[] connectedQueue = new int[middleIndex*2]; long targetSum = 0l; for(int i=0; itargetSum) { ..
[프로그래머스] Lv.3 길 찾기 게임 (Java)
·
알고리즘/문제 풀이
문제https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이모든 노드를 y좌표가 큰 순 - y좌표가 같다면 x좌표가 적은 순으로 정렬한다. - 트리를 이루는 순서대로 정렬정렬된 노드를 하나씩 트리에 삽입한다. 이 때, x좌표를 키로 하는 이진 검색 트리의 삽입 알고리즘을 따른다.완성된 트리를 전위순회, 후위순회하여 정답을 도출한다.트리를 이루는 순서대로 정렬한다는 의미는, nodeinfo로 주어지는 1-2-3-4-5-6-7-8-9 순서의 노드들을위 그림의 7-4-2-6-1-3-9-8-5 순서대로..