분류 전체보기 75

[백준] 11060 : 점프 점프

문제https://www.acmicpc.net/problem/11060   입출력101 2 0 1 3 2 1 5 4 25 아이디어dp[i + jump] = Math.min(dp[i + jump], dp[i] + 1); 도달할 수 없는 칸임을 Integer.MAX_VALUE을 넣어 표시    코드  import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new Buffered..

Java 2025.03.11

[백준] 2294 : 동전2

문제https://www.acmicpc.net/problem/2294   입출력3 151512 3아이디어 dp[i] = Math.min( dp[i-coins[n]] + 1, dp[n])  코드  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static int N, K; // N가지 종류 동전 -> 합이 K static int[] coins; public static void main(String[] args) throws IOException { Buf..

[프로그래머스] 파괴되지 않은 건물

문제https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   입출력  아이디어 - 누적합 코드  class Solution { // skill public int solution(int[][] board, int[][] skill) { int[][] diff = new int[board.length+1][board[0].length+1]; int answer = 0; for(int[] s : skill) { int type = s..

Java 2025.03.10

[백준] 12015 : 가장 긴 증가하는 부분 수열 2

문제https://www.acmicpc.net/problem/12015  입출력610 20 10 30 20 504 아이디어 - 증가하는 부분 수열을 유지하는 배열 LIS + 이분탐색 1) A[i] 가 LIS 배열의 마지막 원소보다 크면 추가2) 아니라면 이분 탐색을 통해 교체할 위치를 찾아 값 교체  - 이분 탐색으로 O(NlogN) 내에 해결하기// 개선이 필요한 로직for (int i = 0; i  - Collections.binarySearch() 리스트에 값이 존재하면 → 해당 값의 인덱스(index)를 반환리스트에 값이 존재하지 않으면 → 값이 들어갈 "삽입 위치(insertion point)" 를 -(insertion point) - 1로 반환  코드 값이 없다면, - (들어갈 위치 - 1) ..

Java 2025.03.08

[백준] 14002 : 가장 긴 증가하는 부분 수열 4

문제https://www.acmicpc.net/problem/14002   입출력 610 20 10 30 20 50410 20 30 50아이디어 - 가장 긴 증가하는 부분 수열 길이 구하기 - 가장 긴 증가하는 부분 수열 구하기 (parent 배열로 어떤 곳에서 왔는지 저장해 둔다) 코드  import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static int N; static int[] arr; public static void main(String[] args) throws Exception { Buff..

Java 2025.03.08

[백준] 11054 : 가장 긴 바이토닉 수열

문제https://www.acmicpc.net/problem/11054 입출력101 5 2 1 4 3 4 5 2 17아이디어 - 증가하다가 감소하는 부분 수열 1) 증가하는 부분 수열 최대 길이 LIS // 왼쪽 부터 2) 감소하는 부분 수열 최대 길이 LDS // 오른쪽부터   코드 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static int N; // 수열A의 크기 static int[] arr; // 수열 public static void main(String[] args) throws Exc..

[백준] 11057 : 오르막 수

문제https://www.acmicpc.net/problem/11057  입출력- 입출력110아이디어DP // i번째자리까지 고려하여 j(0-9중)를 택했을 때 갯수 코드  import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { static int N; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); // 자리가 오름차순을 이루는 수, 인접한 수가 같아도 오..

Java 2025.03.08

[코드트리] 부분 수열의 합(DP)

문제https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-the-sum-of-the-subsequences/  입출력   아이디어  N개의 원소 A 내 부분 수열의 합이 M이 되는 경우가 있는지 판단 DP[i][j] : i번째 원소까지 고려할 때 부분 수열의 합이 j가 될 수 있음1) 부분 수열에 포함시키는 경우2) 포함시키지 않는 경우 코드  import java.io.*;import java.util.*;public class Main { static int N, M; static int[] arr; public static void main(String[] args) throws Exception { Bu..

Java 2025.03.08

[백준] 17837 : 새로운 게임 2

문제https://www.acmicpc.net/problem/17837   입출력4 40 0 2 00 0 1 00 0 1 20 2 0 02 1 13 2 32 2 14 1 2 -1아이디어subList 사용할 때 new ArrayList()로 생성하자    코드  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer;publi..

Java 2025.03.07

[백준] 19238 : 스타트택시

문제https://www.acmicpc.net/problem/19238   입출력   아이디어 - 시뮬레이션1. bfs로 택시 현재 위치에서 가장 가까운 거리에 있는 손님 찾기 2. 그 위치로 택시를 옮기고 사람을 옮기는 로직 수행 (이때 연료 확인) 코드    import java.io.*;import java.util.*;public class Main { static int N, M, fuel; static int[][] box; static int[][] personToId; static int[] car; static int[][] routes; static final int INF = Integer.MAX_VALUE; static int[][] way = ..

Java 2025.03.07