오늘 할 일
- 1일 1커밋
오늘 배운 것
♻️ 알고리즘 문제 풀기
프로그래머스 사이트의 Lv.2 문제를 3개 풀었다.
1. 최솟값 만들기 - 두 개의 배열을 자리마다 곱한 값의 합이 최소가 되기 위해서는 오름차순으로 정렬한 두 개의 배열의 첫 번째 값과 마지막 값을 곱하는 방식을 사용해주어야 한다.
GitHub - chaning49/algorithm: 코딩테스트를 위한 알고리즘 공부
코딩테스트를 위한 알고리즘 공부. Contribute to chaning49/algorithm development by creating an account on GitHub.
github.com
2. 올바른 괄호 - 괄호 짝을 맞추는 문제는 전형적인 스택 문제이다. 그래서 첫 시도로 ArrayList를 사용해서 풀었는데 시간초과가 나서 문제를 틀렸다. 그래서 찾아보니 자바에도 Stack을 구현해놓은 클래스가 있어서 사용법을 익히고 로직을 그대로 적용하니 무난하게 통과!
GitHub - chaning49/algorithm: 코딩테스트를 위한 알고리즘 공부
코딩테스트를 위한 알고리즘 공부. Contribute to chaning49/algorithm development by creating an account on GitHub.
github.com
Stack 클래스
import java.util.Stack;
// 선언
Stack<자료형> stack = new Stack<> ();
// 스택 값 추가
stack.push(값);
// 스택 값 제거
stack.pop();
// 스택 비우기
stack.clear();
// 스택이 비어있는지 확인 비어있으면 true
stack.empty();
// 스택에 있는 원소 개수
stack.size();
// 스택에 값이 있는지 확인
stack.contains(값);
3. 숫자의 표현 - 1부터 순차적으로 더해서 원하는 값의 개수를 출력하는 문제이다. 이중 for문을 사용하기 때문에 시간복잡도가 썩 좋지는 않아서 중간에 빠져나올 수 있도록 조건을 달아주었다.
GitHub - chaning49/algorithm: 코딩테스트를 위한 알고리즘 공부
코딩테스트를 위한 알고리즘 공부. Contribute to chaning49/algorithm development by creating an account on GitHub.
github.com
느낀점
- 알고리즘 문제를 풀수록 자바에도 다양한 클래스가 있다는 것을 알아간다. 파이썬으로 알고리즘 문제를 풀 때보다 신경쓸 것이 많지만 그래도 하면 되긴 하더라!
- 주말에 공부를 해야하는데 여러 행사가 몰려있었다. 핑계지만 복습을 할만큼 시간이 나지 않아 불안하다... TIL 쓰는 시간을 조금 줄이고 복습할 시간을 더 늘려나가야겠다.
내일 할 일
🔆 코드 스테이츠 20일차
메타 학습
- Pair / 기술면접 실습
- mini Job-Searching
- section 1 회고
'TIL' 카테고리의 다른 글
TIL_20220920 (0) | 2022.09.20 |
---|---|
TIL_20220919 (0) | 2022.09.19 |
TIL_20220917 (2) | 2022.09.17 |
TIL_20220916 (0) | 2022.09.16 |
TIL_20220915 (0) | 2022.09.15 |