본문 바로가기
알고리즘/코드트리 문제풀이

코드트리 [자바 java] 1차원젠가

by 잔디🌿 2023. 7. 25.

    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]);
            }
    
    
            
        }
    }