TIL - 2025.03.07
오늘 배운 것 개요
Java 기반의 Kiosk 프로젝트 구조를 정리하고, 메인 메뉴에서 각 Lv 실행 후 다시 돌아오는 방식을 구현
각 LvX.Main
에서 0
입력 시 src.Main
으로 복귀하도록 수정, run()
메서드를 사용하여 객체지향적인 실행 흐름을 유지
프로그래머스 알고리즘 풀이
1. Kiosk 프로젝트
1. Lv1 ~ 3 구현
세부 내용
LvX.Main.main(args);
직접 호출을 제거하고,new LvX.Main().run();
형태로 변경0
입력 시 프로그램 종료Scanner
를 한 번만 닫도록 수정
2. 뒤로가기 구현
세부 내용
0
입력 시src.Main
으로 복귀하도록return
처리
2. 알고리즘 학습
1. 가운데 글자 가져오기
- 작성 코드
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미만
이라는 것을 활용해서 획기적으로 양을 줄인 코드
3. 느낀 점 & 추가 학습
객체 지향적인 실행 흐름 유지
main()
을 직접 호출하는 방식은 유지보수에 불리new LvX.Main().run();
과 같은 객체 생성 후 실행하는 방식 적절
메서드 흐름을 이해하는 것이 중요
0
입력 시 프로그램이 종료되지 않고return;
을 통해src.Main
으로 돌아갈 수 있도록 흐름을 조정.
알고리즘 풀이를 할때 한번더 생각해볼것
substring(a, b) => a이상 b미만
이라는 것을 알고 있었음에도 똑바로 활용하지 못한점- 한번더 생각해 봤으면 더 좋은 코딩을 할 수 있었을 것인데 간단한 문제라고 생각하고 빨리넘긴것이 패착
추가로 학습할 것
Scanner
객체를 전역적으로 관리하는 방법 (static Scanner
)Factory Pattern
을 활용한 동적 Lv 실행enum
을 활용한 Lv 관리 개선
'TIL' 카테고리의 다른 글
[TIL]예외 처리 개선 (0) | 2025.05.14 |
---|---|
[TIL]객체 지향 원칙과 코드 리팩토 (0) | 2025.05.14 |
[TIL]REST API를 활용한 GitHub 레포지토리 목록 조회 (0) | 2025.05.14 |
[TIL]연산자 처리 (0) | 2025.05.14 |
[TIL]Queue (0) | 2025.05.13 |