
/ 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
괜히 만들었나 싶기도 하지만
이렇게 해두는게 프로젝트 네비게이션에서 파일들이 깔끔하게 보여서 너무 마음에 들었다. 😍
문서화는 해본적이 없어서 안해놓았는데
그것도 나중에 공부하다가 머리에 쥐나면 해봐야지!!