알고리즘 스터디 2주차 [구현1]

정재혁·2022년 1월 20일
0

[구현] 백준21918

[전구문제]


[코드]

import java.util.Scanner;

class Command{
    int n1,n2;

    void cmd1(int n1,int n2, int arr[]){
        arr[n1-1]=n2;
    }
    void cmd2(int n1,int n2, int arr[]){
        for(int i=n1-1;i<n2;i++){
            if(arr[i]==0) arr[i]=1;
            else arr[i]=0;
        }
    }
    void cmd3(int n1,int n2, int arr[]){
        for(int i=n1-1;i<n2;i++){
            arr[i]=0;
        }
    }
    void cmd4(int n1,int n2, int arr[]){
        for(int i=n1-1;i<n2;i++){
            arr[i]=1;
        }
    }

}

public class Main_21918 {
    public static void main(String[] argv){
        Scanner sc= new Scanner(System.in);
        Command cmd = new Command();
        int N = sc.nextInt();
        int M = sc.nextInt();
        int arr[] = new int[N];
        for(int i=0;i<N;i++){
            arr[i]=sc.nextInt();
        }

        for(int i=0;i<M;i++){
            int a =sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            if(a==1) cmd.cmd1(b,c,arr);
            else if(a==2) cmd.cmd2(b,c,arr);
            else if(a==3) cmd.cmd3(b,c,arr);
            else cmd.cmd4(b,c,arr);
        }
        for(int i=0;i<N;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

처음 문제를 제대로 안읽어서 내 멋대로 풀었더니 결과는 당연히 런타임에러 + 틀렸습니다..
문제를 잘 읽자..~!

각 명령어를 명령어 클래스 안에서 함수로 구현했다.
그 후 명령어 클래스를 호출해 각 함수 번호에 맞게 구현해주면 끝

profile
저는 정재혁임니다^___^

0개의 댓글