[코드트리 조별과제] 4주차 학습 (정렬 알고리즘)
CS/알고리즘2024. 8. 10. 01:15[코드트리 조별과제] 4주차 학습 (정렬 알고리즘)

Intro코드트리 조별과제를 진행한지 저에겐 2주차가 되는 시점이네요!이번 주차에는 평소 해야지 해야지... 하고 생각만 하던 정렬 알고리즘에 대해 학습을 진행했습니다.보다시피 코드트리에는 정렬 알고리즘 학습 커리큘럼이 잘 구성이 되어있고, 이미지 및 영상 참고자료도 보기 편하게 제공이 되어 원활하게 학습할 수 있었습니다. 또한 각각의 알고리즘 동작 방식과 시간, 공간 복잡도를 중점으로 학습하였습니다. Bubble Sort(버블 정렬)거품 정렬은 가장 단순한 정렬 알고리즘입니다. 기본적인 아이디어는 간단합니다. 첫번째와 두번째 값을 비교하고, 두번째와 세번째 값을 비교하고, ... n-1번째와 n번째 값을 비교합니다. 이 과정에서 순서가 맞지 않은 값을 서로 교환해줍니다. 이런 절차를 정렬이 될 때 까지..

[코드트리 조별과제] 3주차 학습
CS/알고리즘2024. 7. 30. 18:25[코드트리 조별과제] 3주차 학습

Intro취준을 같이 하는 계명대학교 동문 한명에게로부터 코드트리를 추천 받아 3주차로 합류하게 되었습니다. (학교 별 대항전은 못참아!)  코드트리는 SSAFY에서 삼성 역량 테스트 B형 특강을 수강할 때 유료플랜을 받아 몇 번 문제를 푼 경험이 있는 플랫폼이였고, 그 때 당시에도 구성이 되게 좋았다고 생각했었습니다. 왜냐하면 백준, 프로그래머스처럼 분류 별 문제만 푸는 것이 아닌 학습 커리큘럼에 대해 체계적으로 잘 구성되어 있었기 때문이였죠. 현재 취업준비를 병행하면서 코딩테스트 준비를 하기 위해 무작정 백준, 프로그래머스 떠돌아다니며 문제만 풀고 있었는데, 이 기회에 제대로 된 커리큘럼을 통해 다시 한번 알고리즘 실력을 정리해보려 합니다! 3주차 학습 정리 우선 동문의 추천을 받아 [학습하기] 테마..

[PS] 백준1967 : 트리의 지름(Java)
CS/알고리즘2024. 6. 1. 21:57[PS] 백준1967 : 트리의 지름(Java)

문제https://www.acmicpc.net/problem/1967 풀이깊이 우선 탐색(DFS) 활용한 풀이접근법각 노드에서 순회(dfs)방문체크를 통해 한쪽 깊이로만 탐색더 이상 탐색이 불가능한 노드에 도착 시 최대값 비교 및 갱신문제에서 “트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우” 라는 문맥을 통해서 두 노드 사이를 순회하여 제일 높은 가중치를 구하면 되겠구나 라는 생각을 함. 해당 문제를 풀며 조금 생각이 필요했던 부분은 특정한 노드에서 부모노드로 순회를 하게되는 경우였음.이번에 접근한 방식으로는 클래스 배열을 활용하여 부모노드에 대해 기록을 한 뒤 순회를 하도록 구현하였음. (자세한 부분은 아래코드를 참조)소스코드import java.io.*;import..

[Java] ArrayList.java (add 메서드 내부 동작)
Language/Java2024. 3. 19. 23:23[Java] ArrayList.java (add 메서드 내부 동작)

ArrayList가 가변배열이라는 건 알겠는데 한 번 늘 때 얼마나 늘어날까? 궁금해서 알아보았습니다. ArrayList 평소 알고리즘을 풀거나 비즈니스 로직을 개발하다보면 List 인터페이스를 구현한 ArrayList 혹은 LinkedList 클래스를 사용할 때가 많았습니다. 오늘은 문득 ArrayList.add() 라는 메서드를 수행하면 내부적으로 어떤 일들이 일어나는지, 배열 길이를 넘는 데이터를 저장할 때 어떤식으로 가변 동작이 일어나는지 궁금해서 클래스 내부를 한번 들여다보았고 한번 정리해보았습니다. ArrayList Concept 순서가 있는 데이터의 집합으로 ArrayList는 내부적으로 배열을 사용하여 데이터를 연속적으로 저장합니다. 또한 내부가 배열로 이루어져있다보니 길이를 넘어서는 데이..

image