TIL

TIL_20220918

번잔중 2022. 9. 18. 23:26

오늘 할 일

  • 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