728x90
728x90
반응형
7570번: 줄 세우기
입력은 2 개의 줄로 이루어져 있다. 첫 줄에는 어린이 수를 나타내는 정수가 주어진다. 둘째 줄에는 처음에 줄서있는 어린이들의 번호가 차례대로 주어진다. 주어진 번호들 사이에는 공백이 하
www.acmicpc.net
해당 문제는 놀랍게도 가장 긴 증가수열 알고리즘을 활용해서 풀어야 한다.
생각보다 어려워서 구글링 하여 다른 분들의 코드를 확인하여 해결할 수 있었다.
다른 분들의 코드가 현저히 짧은 것을 보고
상심이 매우 컸다.
7570 문제는 줄의 맨 앞이나 맨 뒤로만 어린이들을 보내서 줄을 세워야 한다.
그렇기 때문에 연속된 수들 중 가장 긴 증가수열의 길이를 구하고
n에서 구한 길이를 빼면 최소 횟수를 구할 수 있다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package 그리디; | |
import java.util.*; | |
public class boj7076 { | |
static Scanner sc = new Scanner(System.in); | |
static int n; | |
static int [] dp; | |
static int solution(){ | |
n = sc.nextInt(); | |
dp = new int [n+1]; | |
for(int i=0; i < n ; i++){ | |
int tmp = sc.nextInt(); | |
dp[tmp] = dp[tmp-1] + 1; | |
} | |
Arrays.sort(dp); | |
return n-dp[n]; | |
} | |
public static void main(String[] args) throws Exception { | |
System.out.print(solution()); | |
} | |
} |
728x90
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA][백준 11062][게임 이론][DP] 카드 게임 - 컴도리돌이 (0) | 2022.08.21 |
---|---|
[JAVA][백준 2473][투 포인터] 세 용액 - 컴도리돌이 (0) | 2022.08.20 |
[JAVA][백준 11657][벨만포드] 타임머신 - 컴도리돌이 (0) | 2022.08.18 |
[JAVA][백준 1092][Greedy, Sort] 배 - 컴도리돌이 (0) | 2022.08.17 |
[JAVA][백준 8980][그리디, 정렬] 택배 - 컴도리돌이 (0) | 2022.08.16 |