https://www.codetree.ai/missions/2/problems/jenga-1d/introduction
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
입력으로 젠가의 갯수와 층마다의 숫자가 주어지고, 뺄 젠가들이 주어질 때 남은 젠가의 수와 적혀있는 수들을 출력하는 문제이다.
입력받은 수들을 배열에 넣고, 뺄 젠가들의 위치에 0을 넣는다.
그리고 새 배열을 만들어서 모두 아래로 내려준 배열을 만들고, 이를 clone을 이용해서 다시 기존 배열에 복사한다.
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n+1];
for(int i = 1;i<=n;i++){
arr[i] = Integer.parseInt(br.readLine());
}
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
for(int i = a;i<=b;i++){
arr[i] = 0;
}
int[] arr2 = new int[n+1];
int num = 1;
for(int i = 1;i<=n;i++){
if(arr[i] != 0){
arr2[num] = arr[i];
num++;
}
}
arr = arr2.clone();
st = new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
for(int i = a;i<=b;i++){
arr[i] = 0;
}
arr2 = new int[n+1];
num = 1;
for(int i = 1;i<=n;i++){
if(arr[i] != 0){
arr2[num] = arr[i];
num++;
}
}
System.out.println(num-1);
for(int i = 1;i<num;i++){
System.out.println(arr2[i]);
}
}
}
'알고리즘 > 코드트리 문제풀이' 카테고리의 다른 글
코드트리 [자바 java] 빙빙 돌며 숫자 적기 (0) | 2023.07.29 |
---|---|
코드트리 [자바 java] 방향에 맞춰 이동 (0) | 2023.07.28 |
코드트리 [자바 java] 그래프 탐색 (0) | 2023.07.27 |
코드트리 [자바 java] k개 중에 1개를 n번 뽑기 (0) | 2023.07.26 |
코드트리 [자바 java] 숫자가 가장 큰 인접한 곳으로 동시에 이동 (0) | 2023.07.25 |