1. 학습 목표
1) 숫자 야구 필수 기능 구현
2. 학습 내용
1) 실습 환경 : IntelliJ
2) 학습 진행 내용 : 숫자 야구 구현 ( LV1 진행 ) - 랜덤 값 설정, 동일 값 예외처리, 스트라이크/볼/아웃 구현, 반복, 출력 등
(1) 이슈 사항
기존에는 테스트 데이터로 세 자리 수를 입력 받을 때 세자리를 한 번에 받는 게 아니라 for문을 돌려 각각 받도록 구현했었습니다. 이 부분이 개선이 필요한 것 같아 input값을 세자리 숫자로 입력 받고, for문으로 각 자리의 숫자를 배열에 넣도록 다음과 같이 변경하였습니다.
int input = sc.nextInt();
for (int i=DIGITS-1;i>=0;i--){
record[i] = input%10;
input /= 10;
}
3) 알고리즘 진행 내용 : 프로그래머스 정수 내림차순으로 정렬하기
1) 다음과 같이 구현했더니 런타임 에러남. 그 상태로 시간이 많이 흘러서 내일 다시 진행해볼 예정.
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public long solution(long n) {
List<Long> list = new ArrayList<>();
long answer = 0, tmp = 1;
String str ="";
while (n != 0){
tmp = n % 10;
list.add(tmp);
n /= 10;
}
list.sort(Collections.reverseOrder());
for (long l : list) {
str = str + String.valueOf(l);
}
return Integer.valueOf(str);
}
}
3. 다음 학습 내용
1) 개인 과제 숫자 야구 필수 과제 마무리
2) 개인 과제 도전 과제 할 수 있으면 시도해보기
4. 회고
일단 테스트 하기 전에 정답값도 처음에 출력해 놓고 맞게 나오는지 확인하면서 하고 있는데 생각보다 그거 확인하는 과정도 쉽지 않았습니다. 당분간은 숫자 야구 ptsd 오는 게 아닌가..하하 그리고 계산기와는 달리 상속 관계가 애매한 것 같아서 그 점도 좀 고민입니다. 요새 뭔가 너무 많은 걸 하려다 보니 더 과부하가 오는 듯합니다. 아무래도 프로그래밍은 원하는 시간 안에 끝내기 어려워 자꾸 일정이 밀리고 더불어 의욕이 점점 떨어지는 것 같아 욕심을 버리고 계획을 좀 줄여보려 합니다. 최대한 실천 가능한 정도만!