개발일지 36

5주차 WIL

5주차 회고 Keep : - Lombok 어노테이션 사용 방법 및 실제 사용 사례를 보고 보다 정확하게 구현하기 - Spring-Setting 설정 파일의 의미와 작동 방식, 활용법에 대해서 학습하면서 과제 진행하기 Problem & Try : - 잘못된 구현 > 요구사항을 정확하게 구별하지 못하여 잘못된 방식으로 구현 > 제한 범위를 확인하면서 구현하기 - 재사용 가능한 코드 형식으로 작성하기 > 가능한 부분은 추상화 하며, 적절한 디자인 패턴이 무엇인이 생각하면서 구현 - 복습 > 사용한 코드에 대해서 전반적인 정리와 내부 코드를 확인하면서 보다 완벽한 이해 필요

개발일지 2024.03.03

심화 과정 15 일차

1. 자료구조 및 알고리즘 15일차 수강하기 - 다이나믹 프로그래밍(DP) 2. 새롭게 알게된 지식 - DP : 이전의 결과값이 다음 결정에 필요할 때, 이전의 결과값을 업데이트 하면서 프로그래밍 하는 알고리즘 과제 1 : 최대 서브 배열 : https://leetcode.com/problems/maximum-subarray/ Maximum Subarray - LeetCode Can you solve this real interview question? Maximum Subarray - Given an integer array nums, find the subarray with the largest sum, and return its sum. Example 1: Input: nums = [-2,1,-3,..

개발일지 2024.02.27

심화 과정 14 일차

1. 자료구조 및 알고리즘 14일차 수강하기 - 다익스트라 - 플로이드 - 워셜 2. 새롭게 알게된 지식 - 최단 경로 알고리즘 : 다익스트라 경로의 가중치가 음수가 아니고 시작점이 주어진 경우 최단 경로를 찾는 알고리즘 과제 1 : 네트워크 딜레이 타임 : https://leetcode.com/problems/network-delay-time/ Network Delay Time - LeetCode Can you solve this real interview question? Network Delay Time - You are given a network of n nodes, labeled from 1 to n. You are also given times, a list of travel times as..

개발일지 2024.02.26

4주차 WIL

4주차 회고 Keep : - 시간 복잡도 : 정확한 시간 복잡도를 계산하기 위해 N 을 구함, 내장 함수의 시간 복잡도를 고려 - 수의 범위: 정확한 수의 범위를 계산하고 반영 Problem & Try : - 알고리즘 선택 섞임 > 지속적인 학습으로 보충 > 사용 가능한 알고리즘 기법을 다시한번 정리하고 재사용 할 수 있도록 특정한 format을 만들어서 암기 - 인덱스 문제 > 인덱스를 잘못 선택하여 이진 탐색을 하는 경우 누락되는 경우도 있고 무한 루프에 빠지는 경우도 존재 > 인덱스 사용을 최소화 하고, 테스트 케이스를 조금 늘려서 인덱스를 확인 후 문제 접근 - 시간 문제 > 명확하게 풀이 의도가 보인다면 빠르게 해결 할 수 있지만, 그렇지 않는 경우에는 소요 시간이 많음 > 특히, 그리디나 이진..

개발일지 2024.02.25

심화 과정 13 일차

1. 자료구조 및 알고리즘 13일차 수강하기 - 이진 탐색 2. 새롭게 알게된 지식 - 원하는 수를 특정 범위내에서 빠르게 찾을때 이진 탐색이 유용하다. 과제 1 : 두 수의 합 2 https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/ Two Sum II - Input Array Is Sorted - LeetCode Can you solve this real interview question? Two Sum II - Input Array Is Sorted - Given a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numb..

개발일지 2024.02.24

심화 과정 12 일차

1. 자료구조 및 알고리즘 11일차 수강하기 - 그리디 2. 새롭게 알게된 지식 과제 1 : BOJ 11399 ATM 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net - 접근 : 누적 합 문제 - 코드 구현 : 과제 2 : BOJ 13305 주유소 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net - 접근 : 지역에 도달할 때, 지나온..

개발일지 2024.02.23

심화 과정 11 일차

1. 자료구조 및 알고리즘 11일차 수강하기 - 정렬 2. 새롭게 알게된 지식 - O(n^2) 정렬 : 선택 / 버블/ 삽입 정렬 - 최대 O(n^2) 정렬 평균 O(NlogN): 퀵 정렬 - O(NlogN) 정렬 : 병합 / 힙 정렬 - 병합 정렬 절반씩 나누면서 원소가 1개가 남을 때까지 분리 나눈 과정을 반대로 병합 하면서 작은 순대로 정렬 과제 1 : 수 정렬하기 2 : https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net - 접근..

개발일지 2024.02.23

심화 과정 10 일차

1. 자료구조 및 알고리즘 10일차 수강하기 - 구현 & 시뮬레이션 2. 새롭게 알게된 지식 과제 1 : 미세먼지 https://www.acmicpc.net/problem/17144 - 접근 : 확장 가능한 미세먼지 큐에 등록 미세먼지 확장 기능 구현 공기 순환 기능을 구현 - 코드 구현 : import sys from collections import deque class Solution: def __init__(self): self.input = sys.stdin.readline self.output = sys.stdout.write self.spread_way = ((-1,0), (0,1), (1,0), (0,-1)) def findSpreadable(self, room_air: list): """..

개발일지 2024.02.23

심화 과정 9 일차

1. 자료구조 및 알고리즘 9일차 수강하기 - 최소 신장 트리 (MST : Minimum Spanning Tree) 알고리즘 2. 새롭게 알게된 지식 - MST 란? 모든 노드가 연결 되어 있어야함 각각의 노드에서 가중치가 최소가 되는 간선을 선택 - MST 관련 알고리즘 1) Kruskal Algorithm - 간선(edge) 중심 2) Prim Algorithm - 정점(vertex) 중심 - 임의의 시작점이 존재 - 인접한 정점 중 가중치가 가장 낮은 정점을 선택 과제 1 : 네트워크 연결 https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicp..

개발일지 2024.02.23

3주차 WIL

3주차 회고 Keep : - 시간 복잡도와 공간 복잡도를 계산하고 , 실제로 더욱 빠른 코드 탐구 및 구현 - 빅 O 계산시 n , n^2 이상 계산 ( 실제 n 을 찾아서 수의 범위 및 시간 범위 판단 ) Problem & Try : - 사용 가능한 알고리즘 기법 부족 > 지속적인 학습으로 보충 (트리, 2진 트리) - 알고리즘 문제 의도를 분석하지 못한 경우 > 문제만 이해하고, 풀이 방법은 정답을 참고하여 학습 ( 잘못된 접근 방식 습관화 방지 ) > 잘못된 접근 (의도와 다르게 짜여진 코드) 으로 인한 시간 낭비를 줄여 정확한 방식의 풀이법을 습득 하는 시간 늘리기 - 블로그 기록 시간 줄이기 > 습득한 지식 조금 더 요약하여 빠르게 작성하고 추후(공휴일 이용) 2차 수정을 통하여 보완 - 알고리..

개발일지 2024.02.18