🔥2주 차 회고
3주동안 진행되는 자료구조 / 알고리즘 주차가 시작되었다.
하루 4문제 풀기 머 어렵겠나 했는데 생각보다 빡빡했다
그래도 매일 하루 4문제씩은 꾸준히 풀다 보니 차곡차곡 쌓이고 있는 거 같긴 하다
강의 학습 내용
[1일 차]
변수, 데이터 타입, 연산자
int, boolean, char, short, float, long, double, byte 8개의 기본 연산자를 제외한 모두를 참조형이라고 한다
연산자의 우선순위 - 대입연산자 < 삼항연산자 < 논리연산자 < 비교연산자 < 산술연산자 < 단항연산자
String의 관련메서드들도 학습했다.
기본 자바의 개념을 알고 있으면 문제는 크게 어려운 점은 없었다.
백준의 문제를 처음 접해서 첫날에는 런타임에러 때문에 고생했다.
[2일 차]
제어문, 배열, 입/출력
제어문 while, for, if..
배열, 다차원 배열 - 코테에서도 진짜 많이 사용하는 거 같았다!
프로그래머스만 풀다가 백준을 풀어보니 참 불친절한(?) 코딩테스트였다
입출력도 직접 만들어야 했고, 입출력 또한 시간과 메모리 공간을 고려해서 문제에 따라 선택해서 풀 수 있었다.
특정한 합을 가지는 부분 연속 수열 찾기 문제가 나왔는데 투포인터를 사용해 푸는 문제였다.
알고리즘 투포인터에 대해서도 학습할 수 있었다.
[3일 차]
함수와 재귀
재귀 함수에 대해 학습을 했지만, 재귀로 풀이를 하니까 시간초과와 스택오버플로우가 났다
재귀는 함수를 한 번만 작성해도 되지만 깊이가 깊어질수록 스택오버플로우를 발생할 수 있었다. 해당 방법으로 문제를 푸는 건 비효율적이라는 것을 알게 되었다.
그래서 문제에서 나온 동적 계획법 알고리즘을 사용해 재귀를 대신해 문제를 풀 수 있었다.
[4일 차]
표준라이브러리
문제를 풀 때 자바에서 제공하는 표준 라이브러리를 통해 손쉽게 문제를 풀 수 있었다.
사실문제를 봤을 때 알고 있는 라이브러리들이 없어서 막힐 때도 많이 있었다.
직접 구현해서 풀어보는 것도 좋지만 적절한 상황에서 알맞은 라이브러리를 사용하면 더 효과적으로 문제를 풀 수 있을 거 같다!
이날도 문제가 간단해서 많은 문제를 풀어볼 수 있었다. 데이터의 키와 값을 저장해서 푸는 문제가 있었는데 HashMap을 미리 학습해 볼 수 있었다.
[5일 차]
자료구조 기초
데이터를 저장하고 관리하는 방법이다
효과적으로 저장, 검색, 수정할 수 있도록 구조화해서 데이터를 저장할 수 있다.
앞서 배운 배열과 배열의 단점을 해결해 줄 수 있는 연결리스트, 스택, 큐, 트리, 해시테이블 등이 있다
그리고 최악의 시간을 나타내는 빅오 표기법에 대해서도 학습할 수 있었다
문제를 풀면서 수학적 지식이 있으면 조금 더 도움이 되겠다 싶었다.
팀스터디
매일 팀 스터디를 통해 팀원들이 각자 작성한 코드를 보며 토론하는 시간을 가졌다.
모든 문제에 틀린 정답은 없기에 팀원들의 코드를 보며 내가 생각하지 못했던 부분을 새롭게 알 수 있어 생각의 확장과, 서로의 코드를 비교해 보며 어떤 코드가 더 클린코드에 가까울까 함께 이야기해볼 수 있어서 좋았다
'항해 99' 카테고리의 다른 글
[항해99 취업 리부트 코스 수강 후기] 자료구조/알고리즘3 (0) | 2024.08.05 |
---|---|
[항해99 취업 리부트 코스 수강 후기] 자료구조/알고리즘2 (0) | 2024.07.29 |