Java 기반의 Kiosk 프로젝트 구조를 정리하고, 메인 메뉴에서 각 Lv 실행 후 다시 돌아오는 방식을 구현
각 LvX.Main에서 0 입력 시 src.Main으로 복귀하도록 수정, run() 메서드를 사용하여 객체지향적인 실행 흐름을 유지
프로그래머스 알고리즘 풀이
세부 내용
LvX.Main.main(args); 직접 호출을 제거하고, new LvX.Main().run(); 형태로 변경 0 입력 시 프로그램 종료 Scanner를 한 번만 닫도록 수정 세부 내용
0입력 시 src.Main으로 복귀하도록 return 처리class Solution {
public String solution(String s) {
int val = s.length();
int cut = val / 2;
String answer = "";
if(val % 2 != 0){
answer = String.valueOf(s.charAt(cut));
} else {
answer = s.substring(cut-1, cut+1);
}
return answer;
}
}
class Solution {
public String solution(String s) {
return s.substring((s.length() - 1) / 2, word.length() / 2 + 1);
}
substring(a, b) => a이상 b미만이라는 것을 활용해서 획기적으로 양을 줄인 코드main()을 직접 호출하는 방식은 유지보수에 불리new LvX.Main().run();과 같은 객체 생성 후 실행하는 방식 적절0 입력 시 프로그램이 종료되지 않고 return;을 통해 src.Main으로 돌아갈 수 있도록 흐름을 조정.substring(a, b) => a이상 b미만이라는 것을 알고 있었음에도 똑바로 활용하지 못한점Scanner 객체를 전역적으로 관리하는 방법 (static Scanner)Factory Pattern을 활용한 동적 Lv 실행enum을 활용한 Lv 관리 개선