오늘 한일
-
백준에 백설공주 문제 숏코딩 순위권 들기 도전
-
볼링 구현 사항
- 현재 단계상에서 State 생성 및 점수 입력 부 완료
오늘 느낀점
-
어제 새벽에 자기 전에 Stream을 이용한 백설공주 풀이 코드를 조금 더 손을 봤다.
public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> peoples = new ArrayList<>(); for (int i = 0; i < 9; i++) peoples.add(sc.nextInt()); peoples.stream().sorted() .filter(people -> !peoples.stream().filter(secondPeople -> people != secondPeople) .anyMatch(secondPeople -> people + secondPeople == peoples.stream() .mapToInt(Integer::intValue).sum() - 100)).forEach(System.out::println); }
손을 본 방향은 코드량을 줄여서 숏코딩 순위권에 들기였는데 위의 코드로 2등을 했다.(1등은 저 코드에서 변수명을 a,b 같은 형태로…. 한 내 코드) 그건 그렇고 숏코딩을 하다보니까 변수를 만들고 재활용 하는 것에 대해 좀 더 깊이 생각해 볼 수 있었다.
-
위의 Stream이야 억지로 푼 문제여서 한눈에도 안들어 오고 작성하는 것도 힘들었는데 오늘 푼 다른 문제 중
for (int i = 0; i < size; i++) { answer += A[i] * B[size - 1 - i]; }
answer = IntStream.range(0, size).map(index -> A[index] * B[size - 1 - index]).sum();
이처럼 간단한 문제는 수월하게 작성하게 된거 같다. 확실히 요 몇일 Stream을 많이 사용해봤는데 잘만 사용하면 불필요한 코드량도 줄고 가독성에서도 큰 이점이 있을거 같아 매력적이다. 익숙해진거 같긴해도 아직 모르는 부분이 너무 많은데 Stream의 학습 비용이 크다는게 어떤건지 알 것 같다.
-
볼링을 많이 볼까 하다가 Stream을 좀더 사용하고 싶어서 조금은 쉬었다.
-
경기창조혁신센터에서 공부하다가 중간에 집중이 잘 안되서 잠깐 쉴려는 타이밍에 인프런 대표님을 만났다. 열심히 하는 다른 사람을 보니 자극이 되서 다시 집중 해서 공부를 했다. 덜도 말고 더도 말고 내 노력하는 사람의 롤 모델인 형만큼 할 수 있게 노력하자.
내일 할일
-
콘솔 볼링 게임 리팩토링
-
포비의 Stream 강의