코딩테스트 25

[항해 취업 리부트 코스] 개인프로젝트 1주차 WIL

이번 주 항해 취업 리부트코스에서 내가 구현한 기능은 무엇인가요?회원 관리 기능회원가입개인정보 암호화로그인 및 로그아웃 기능JWT 토큰 활용상품 관리 기능상품 리스트 및 상세 정보 조회해당 기능을 구현하기 위해, 어떤 기술적 의사결정을 거쳤나요?고민한 기술의 종류들에는 무엇이 있나요?JAVA 17버전 선택8, 17, 11 버전을 사용을 많이 하고 있고, 8과 17을 사용하는 점유율이 비슷하였고,스프링 부트 3.xx 버전 부터는 Java 17 이상을 지원한다. Java 21 버전부터 Virtual Threads - 수백만 개의 가벼운 스레드를 지원하여 높은 동시성을 효율적으로 처리해주는 기능 안정성과 검증된 기능과 성능을 제공하는 17버전 DB 선택MySQL의 장점:성능: 일반적으로 빠른 속도를 보장하며..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 6

(오늘은 강의 학습과 팀스터디는 진행하지 않았습니다.) 4주차 알고리즘 마지막 날로 코딩 테스트를 치렀는데, 4문제중 2문제를 풀었다. (난이도 실버1, 골드5) 난이도가 실버1이 제일 낮아서 시작하기에 앞서 어려울꺼라고 생각했는데 예상보다 수월하게 풀었던 문제였다. 3, 4번은 예외...그 동안 열심히 강의를 듣고 문제 푼 보람이 있었던 것 같다. 아직 멀었다고 생각 되지만, 작은 성취감이라도 느낄 수 있지 않았나 싶다. 내일부터는 프로젝트 주차가 시작된다. 오늘 프로젝트 주제를 선택했는데, 계속 고민하다가 처음 끌렸던 주제인 예약 구매를 선택했다. 고민 했던 이유는 난이도가 어려울 꺼 같아 제대로 구현을 못하고 끝나지 않을 까 하는 생각이 들었기 때문이다. 그래도 흥미가 있는 프로젝트 주제를 선택한 ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 5

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?4주차까지 배웠던 알고리즘 자료구조, 이분탐색, DFS/BFS, 완전탐색 그리디 다익스트라, DP 등등 다양한 알고리즘을 학습하였다. 오늘은 배운 내용을 다시 정리하고 완전탐색, 그리디, DP, 이분탐색 등등 복습하며 문제를 풀었다.앞으로 문제 유형을 보지 않고 내가 추측해서 푸는 연습을 꾸준히 해야겠다. Q. 이번 주 진행된 팀 스터디에서 얻은 인사이트는 무엇인가요?앞으로의 준비 방향으로 모의고사처럼 유형을 모르는 상태에서 문제를 푸는 연습, 유형 숙달, 난이도 천천히 높이기그리고 추가로 공부해보면 좋은 주제로는 투포인터, Union Find 한번씩 보면 좋을 것 같다. - 알고리즘 1일 1문제씩 풀기- 모르겠는 알고리즘 유형은 반복해서 풀면 템플릿 ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 4

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?다이나믹 프로그래밍 (Dynamic Programming)동적 계획법이란?동적 계획법(dynamic programming, DP)은 복잡한 문제를 더 간단한 여러 하위 문제로 나누어 해결하는 알고리즘 기법입니다. DP는 특정 구조가 내부적으로 반복되는 문제에서, 일부 문제의 풀이 결과를 재활용(메모이제이션)함으로써 계산의 효율성을 크게 높입니다. 이 기법은 부분 문제 반복과 최적 부분 구조를 가지며, 일반적인 방법에 비해 시간 복잡도를 크게 줄일 수 있습니다.다이나믹 프로그래밍의 특징하위 문제의 재사용:문제를 더 작은 하위 문제로 나누고, 각 하위 문제의 답을 저장하여 동일한 하위 문제를 반복해서 계산하지 않습니다.메모이제이션(Memoization):계..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 3

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?그리디(Greedy) 알고리즘개요그리디 알고리즘은 탐욕 알고리즘이라고도 하며, 최적해를 구하는 데에 사용되는 근사적인 방법입니다. 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달합니다. 그리디 알고리즘은 그 순간마다 지역적으로 최적의 선택을 하지만, 이 선택이 항상 전역적으로 최적임을 보장하지는 않습니다.특징지역 최적성: 각 단계에서 지역적으로 최적의 선택을 합니다.전역 최적성 보장 X: 지역 최적성이 항상 전역 최적성을 보장하지 않습니다.단순성: 구현이 간단하고 이해하기 쉽습니다.적용 가능한 문제그리디 알고리즘은 다음과 같은 조건을 만족하는 문제에 효과적으로 적용할 수 ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 2

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?백트래킹백트래킹이란 무엇인가요?백트래킹은 문제를 해결하기 위해 후보 해를 하나씩 만들어 나가다가, 해당 후보 해가 문제의 조건을 만족하지 않으면 즉시 포기하고 다음 후보 해를 시도하는 알고리즘입니다. 즉, 가능한 모든 해를 탐색하되 불필요한 탐색은 줄여서 효율적으로 문제를 해결하는 방법이에요.백트래킹의 특징재귀적 탐색: 백트래킹은 재귀적으로 모든 가능한 해를 탐색해요. 각 단계에서 후보 해를 확장하거나 포기하는 결정을 내려요.가지치기: 가능성이 없는 경로를 빨리 포기(가지치기)하여 탐색 공간을 줄입니다. 이를 통해 시간 복잡도를 줄이고 효율성을 높여요.상태 공간 트리: 해결 과정이 트리 형태로 표현되며, 트리의 각 노드는 해결의 각 단계를 나타냅니다. ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 1

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?시뮬레이션 문제란?시뮬레이션 문제는 구현 문제의 한 유형으로, 특정 상황을 코드로 시뮬레이션하여 해결하는 문제입니다. 이러한 문제는 난이도가 높을 수 있지만, 복잡한 알고리즘보다 명확한 구현 능력이 요구되는 경우가 많습니다.왜 시뮬레이션 문제가 중요한가?코딩 테스트에서 빈번히 출제: 많은 기업의 코딩 테스트에서 자주 출제됩니다.구현 능력 평가: 단순한 알고리즘 능력보다는 문제를 이해하고 코드를 통해 정확하게 구현하는 능력을 평가하는 데 적합합니다.필요한 도구자료구조: 효율적인 문제 해결을 위한 기본적인 자료구조.시간복잡도 계산: 알고리즘의 효율성을 평가하고 시간복잡도를 계산하는 능력.그래프 기초: BFS, DFS와 같은 그래프 탐색 기법.브루트포스(완전..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 6

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?따로 진행된 강의는 없었고, 문제풀이를 진행함. BFS 최단 경로를 구하는 문제최단 경로 문제: 무가중치 그래프에서 노드 A에서 노드 B로 가는 최단 경로를 찾는 문제에서, BFS는 A에서 출발하여 모든 이웃 노드를 탐색하면서 B에 도달할 수 있는 최단 경로를 발견합니다.우선순위 큐 문제각 요소가 우선순위를 가지는 자료구조로, 우선순위가 높은 요소가 먼저 처리됩니다. 주로 가중치가 있는 그래프에서 최단 경로를 찾는 알고리즘, 우선순위 큐를 사용하면 각 노드를 탐색할 때 현재까지의 최단 거리를 기준으로 우선순위를 정하여 효율적으로 최단 경로를 구할 수 있다. 2문제를 풀었다. 아직 알고리즘 문제 접근과 구현이 어렵다.. Q. 이번 주 진행된 팀 스터디에서..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 5

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?깊이 우선 탐색(DFS)이란 무엇인가요?깊이 우선 탐색(DFS, Depth-First Search)은 그래프 탐색 알고리즘 중 하나로, 한 정점에서 시작하여 가능한 깊이까지 탐색한 후, 다시 돌아와 다른 경로를 탐색하는 방식입니다. 트리나 그래프의 모든 정점을 방문하는 데 사용됩니다.깊이 우선 탐색의 특징스택 기반: DFS는 스택 자료구조를 사용합니다. 재귀 호출을 이용하면 자연스럽게 함수 호출 스택을 사용하게 됩니다.경로 탐색: 경로를 찾는 데 유용합니다. 예를 들어, 미로를 찾는 문제에 효과적입니다.모든 정점 방문: 그래프의 모든 정점을 한 번씩 방문합니다.시간 복잡도: DFS의 시간 복잡도는 O(V + E)이며, 여기서 V는 정점의 수, E는 간선..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 4

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?그래프란 ?그래프는 정점(Node)과 간선(Edge)으로 구성된 자료구조입니다. 정점은 객체를 나타내고, 간선은 정점 간의 관계를 나타냅니다. 예를 들어, 친구 관계를 나타내는 소셜 네트워크에서 사람들을 정점으로, 친구 관계를 간선으로 표현할 수 있습니다. 그래프는 다양한 실제 문제를 모델링하는 데 유용한 자료구조입니다. 예를 들어, 도시 간의 도로 네트워크, 컴퓨터 네트워크, 소셜 네트워크 등이 있습니다. 정점 (Node)정점은 그래프의 기본 단위로, 개체나 객체를 나타냅니다. 예를 들어, 도시, 사람, 웹 페이지 등을 나타낼 수 있습니다.간선 (Edge)간선은 정점 간의 연결을 나타내며, 정점들 간의 관계를 정의합니다. 예를 들어, 도로, 친구 관계..