코딩테스트용 프로젝트 템플릿!! 😆

김아무개·2023년 3월 19일

Java

목록 보기
1/23


/ Main.java

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;

/**      Index
            site 0 : 백준
              01.
              02.
            site 1 : 프로그래머스
              01. 2차원으로 만들기 [https://school.programmers.co.kr/learn/courses/30/lessons/120842]
              02. 정렬 [https://school.programmers.co.kr/learn/courses/30/lessons/42748]
*/
public class Main {
    public static void main(String[] args) throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {

        /*  site         =  b : 백준     p : 프로그래머스
         *  fileNumber   =  1 , 2 , 3 , 4 , .....
         *  launcher     =  1: main     2 : test         */

        int site        = 'p';
        int filenumber  = 1;
        int launcher    = 2;

        printLectucePractice(site, filenumber, launcher);
    }


    private static void printLectucePractice(int site, int fileNumber , int launcher) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        String str = "";

        if (site == 'b')        str = String.format("baekjoon.Test%02d", fileNumber);
        else if (site == 'p')   str = String.format("programmers.Test%02d", fileNumber);

        Class.forName(str).getDeclaredConstructor(int.class).newInstance(launcher);
    }
}

공부가 손에 안잡혀서 코딩테스트 문제 풀 때 마다 은근히 스트레스 받았던 작업을 오늘 해결해버렸다. 😄

만든김에 템플릿 프로젝트로 만들어서 깃에 저장해두었다.
강의 들으면서 작성하는 파일들도 이런식의 프로젝트 구조로 만들어서 함께 깃에 올려두었다. 😊
온라인 강의를 여러개 들으면서 파일 관리가 힘들었는데
이참에 이거 가지고 싹 정리해야겠다.(나중에 공부하기 싫을때나.....🤐)

작동 방식은
각 패키지(baekjoon / programmers) 안에 있는 Test파일 복붙으로 번호 붙여서 작성하고,
실행할땐 최상위 위치의 Main 파일 열어서 site, filenumber, launcher(실행할 메소드 = 1: 제출환경 / 2: 콘솔출력환경) argss에 넘겨줄 매개변수들 append해서 보내버리면 된다.

  • [ 23.03.22 수정 ]
    -> 프로그래머스 코드의 경우 Main클래스에서 보내주던 매개변수들을, 해당 Test 파일 속 생성자에서 전달하는걸로 변경

괜히 만들었나 싶기도 하지만
이렇게 해두는게 프로젝트 네비게이션에서 파일들이 깔끔하게 보여서 너무 마음에 들었다. 😍

문서화는 해본적이 없어서 안해놓았는데
그것도 나중에 공부하다가 머리에 쥐나면 해봐야지!!

profile
Hello velog! 

0개의 댓글