TIL

TIL_20230505

번잔중 2023. 5. 5. 19:27

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • 자바의 정석 공부하기
  • 김영한의 스프링 입문 강의 듣기
  • 코드스테이츠 - Cloud > 실습 - 서버 배포 > Full Stack Application 배포 내용 노션에 정리하기
  • Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기
  • 운동하기 - 웨이트 트레이닝

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 1456. Maximum Number of Vowels in a Substring of Given Length(https://leetcode.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length/)
  • 문제 조건
    • 문자열 s와 정수 k가 주어지고, 길이가 k인 s의 substring 내에 포함된 모음의 최대 개수를 반환해라.
    • 영어의 모음은 'a', 'e', 'i', 'o', 'u'이다.
  • 문제 해결 과정
    • 길이가 최대 10^5이므로 시간 복잡도는 최대 O(n)정도로 맞춘다고 생각하자.
    • s의 앞에서부터 모음인 경우를 체크해본다. 그 다음 k만큼 잘라서 순회하면 정답이 나올듯!
    • TC가 돌아가고 있다. 일단 로직을 설명해보자!
    • 문자열 s를 하나씩 순회하면서 1과 0으로 구성된 새로운 문자열을 만든다.
    • 각 자리마다 모음이면 1, 아니면 0을 붙여준다.
    • substring으로 k만큼 잘라서 모음이 몇 개 있는지 확인하기 위해 countVowel을 돌려주고, 최대값인지 계속 비교해준다.
    • 시간초과 이슈가 발생했다. countVowel 때문인 것 같다. 해당 부분의 시간을 줄이기 위해서 다른 방법을 찾아봐야 할 듯
    • 슬라이딩 윈도우를 사용하는 문제라고 해서 공부 살짝 하고 돌아옴
    • 모음을 판별하는 isVowel을 통해 1과 0을 반환받을 수 있도록 한다.
    • 모음 개수의 최대값을 저장할 maxNum과 움직이면서 k칸 만큼의 합을 저장할 currNum을 선언한다.
    • currNum에 i에 해당하는 문자가 모음이면 1을 더하고, 아니면 0을 더한다. 만약 i가 k 이상이 되면 i - k위치에 있는 값을 빼줘야 하는데, 그 이유는 한 칸씩 움직이고 있기 때문에 currNum에서 이전에 더했던 값을 빼고 현재 더해줘야 하는 수를 더해주면 매번 새롭게 구간합을 구할 필요가 없기 때문이다.
    • 말로 쓰려니 어렵다 뭔소린지 나도 모르겠음.

자바의 정석 공부하기

  • 매개변수의 타입 - 기본형, 참조형 그리고 참조형 반환타입에 대해서 학습했습니다.
    • 3.8 기본형 매개변수와 참조형 매개변수
    • 3.9 참조형 반환타입

김영한의 스프링 입문 강의 듣기

  • 섹션5. 회원 관리 예제 - 웹 MVC 개발 > 화면 웹 기능 - 홈 화면 추가 수업을 듣고 정리했습니다.
  • 스프링 컨테이너가 스캔하는 순서가 정해져 있기 때문에 우선순위에 따라 화면 web도 실행됨을 배웠습니다.

코드스테이츠 - Cloud > 실습 - 서버 배포 > Full Stack Application 배포 내용 노션에 정리하기

  • 추가로 EC2 인스턴스 연결 튜토리얼, EC2 인스턴스 상에서 서버 실행까지 정리했습니다.
  • 내용이 실습에 관련된 가이드라서 뭔가를 배운다기 보다는 정리하는 데에 집중했습니다.

운동하기 - 웨이트 트레이닝

10일차

  • 오늘의 운동
    • 인클라인 벤치프레스 4 x 12
    • 랫 풀 다운 3 x 12
    • 오버헤드프레스 3 x 12
    • 데드리프트 3 x 12
    • 사이드 크런치 4 x 12

느낀점

  • 리트코드의 미디움 정도 난이도에서는 어떤 문제가 나오는지 조금 알 것 같습니다. 이지 문제도 그렇게 쉬운 것은 아니지만 미디움 문제부터는 시간복잡도가 더욱 중요한 문제가 많이 나오네요. 시간복잡도를 잘못 계산해서 그냥 풀었더니 시간 초과가 생겼습니다. 그래도 덕분에 슬라이딩 윈도우라는 알고리즘을 학습하고 써먹어봤네요.
  • 오늘은 뭔가 평소보다 공부에 집중하기가 어려워서 봤던 내용을 여러 번 다시 읽었습니다. 집중력을 끌올해야 하는데 말입니다...
  • 프로젝트 관련해서 게시판 이미지 수정 기능 같은 경우는 내일 올데이로 해보겠습니다.
  • 아 맞다... SK 자소서도.......
  • 일단 오늘은 친구들이랑 고기먹어야 해서 20000~~

내일 할 일

  • LeetCode 데일리 문제 풀기

'TIL' 카테고리의 다른 글

TIL_20230507  (0) 2023.05.07
TIL_20230506  (0) 2023.05.06
TIL_20230504  (1) 2023.05.04
TIL_20230503  (0) 2023.05.03
TIL_20230502  (0) 2023.05.02