Yeji's Tech Notes
반응형
article thumbnail
[구름톤 챌린지] 알고리즘 챌린지 1주차 학습일기
스터디/구름톤 2023. 8. 14. 11:28

[ 목차 ] 1. 구름톤 챌린지 개요 2. 구름톤 챌린지 참여 방법 3. 구름톤 챌린지 문제 유형 4. 그 외 혜택 5. 챌린지 느낀점 개요 이번 구름에서 알고리즘 챌린지를 열었습니다. 해커톤만 계속봐오다가 알고리즘 챌린지는 처음 경험해보는데요 쿼리큘럼과 구성이 좋아서 한번 참여하게 되었습니다. 구름톤 챌린지 참여 방법 https://9oormthonchallenge.oopy.io/?utm_source=community&utm_medium=social_affiliate&utm_content=pre_apply 구름톤 챌린지 구름LEVEL 알고리즘 먼데이 챌린지가 구름톤 챌린지로 새롭게 찾아왔습니다. 온라인 알고리즘 문제 풀이와 오프라인 팀 챌린지를 모두 즐길 수 있는 구름톤 챌린지와 4주 동안 매일 꾸준히..

article thumbnail
[백준] 17220번 : 마약수사대 Java 풀이 (DFS)
알고리즘 2023. 8. 10. 09:30

https://www.acmicpc.net/problem/17220 17220번: 마약수사대 최근들어 세계적으로 마약과 관련한 사회적 문제들이 많이 발생하고 있다. 이에 따라 경찰은 마약 수사대의 한정된 인력이 허용하는 선에서 최대한 마약공급을 막고자 한다. 마약 공급책들은 www.acmicpc.net 문제 구현 알고리즘 해당 문제는 graph, dfs (또는 bfs)를 활용해서 푸는 문제 입니다. 해당 문제에서는 예외 케이스들이 존재해서 해결하는데 시간이 걸렸습니다. 확인사항 1. 마약 원산지는 제외하고 결과값을 구해야함 마약수사대가 소재지 파악에 원산지가 들어갈 수 있지만 최종적으로 구해야되는 값은 마약 공급자입니다. 그러므로 Root노드를 제외한 Edge노드만 counting해줘야합니다. 2. 마약..

article thumbnail
[Test] 의미있는 단위 테스트 Naming Convention 작성하기
Spring 2023. 6. 21. 09:30

개요 단위 테스트 작성 중 의미있는 Naming Convention에 관해 고민하다 7Popular Unit Test Naming Conventions 글을 보며 정리한 글입니다. 그 외에도 단위테스트 활용방법 글을 읽으면 단위 테스트 작성 시 도움이 될 것 같습니다. 의미있는 Naming Convention 메서드명_테스트상태_기대결과 예시) 성인인증 시 18세 이하일 경우 False void isAdult_AgeLessThan18_False() {} 만약 메소드 이름이 코드 리팩터링의 일부로 변경된다면, 이와 같이 테스트 이름도 변경되어야 하고, 그렇지 않으면 다음과 같이 변경되기가 어려워집니다 메서드명_기대결과_테스트상태 ex) 성인인증 시 18세 이하일 경우 False void isAdult_Fa..

article thumbnail
[JAVA] 가비지 컬렉터(GC) 동작원리
언어/JAVA 2023. 4. 13. 20:40

가비지 컬렉터(Garbage Collector)란? 가비지 컬렉터는 사용되지 않는 메모리를 대신 회수해주는 프로세스 입니다. 가비지 컬레션은 JVM 힙 공간에서 사용할 수 있는 모든 객체를 추적하고 사용하지 않는 객체들은 제거합니다. 가비지 컬렉터는 기본적으로 Mark and Sweep 두가지 단계로 동작합니다. Mark - 가비지 컬렉터에서 사용 중인 메모리와 사용하지 않는 메모리를 식별 Sweep - Mark에서 확인한 사용하지 않는 메모리를 제거 사용되지 않는 메모리 공간은 GC에서 자동으로 처리되므로 molloc/free의 별도 메모리 할당,해제 처리를 하지 않아도 됩니다. C언어 같은 경우에는 malloc, free를 통해 개발자가 직접 메모리 공간할당을 합니다. https://www.geeks..

article thumbnail
냅색 알고리즘 (Knapsack Algorithm)개념과 원리
알고리즘 2023. 3. 21. 17:51

[ 목차 ] 1. 개요 2. 냅색 알고리즘 개념 3. 냅색 알고리즘 원리 개요 특정 가중치와 할당된 값을 가진 항목 집합이 주어지면 가중치 제약 내에 머무르면서 배낭의 값을 최대화하는 것이 목표인 시나리오에서 유래된 알고리즘 입니다. 냅색 알고리즘은 optimization 카테고리에 속하는 DP(Dynamic Programming) 문제 입니다. *optimization DP(Dynamic Programming) 해법으로는 총 두가지가 있습니다. 1. Overlapping subproblem 2. Optimal substructure 여기서 냅색 알고리즘은 2번째 Optimal substructure은 작은 문제의 최적 해법으로 원래 문제의 최적 해법을 구하는 방식 입니다. 문제 예시를 들어보면, 마리는..

[Java] 객체 정렬하기 - Comparable
언어/JAVA 2023. 2. 1. 15:34

안녕하세요! 알고리즘을 풀다보면 좌표를 정렬하거나 객체를 정렬해야되는 경우가 있습니다. 예) (x,y)좌표 값에서 x 좌표를 기준으로 정렬하기, 키 몸무게가 입력된 학생들 중 키 순으로 정렬하기 이런 경우 키값, x좌표 기준으로 정렬하기 위해서 반복문을 사용해 정렬하는 경우도 있지만 이번 글에서는 Comparable을 이용해 정렬하는 방법을 정리해보았습니다! 클래스 생성 해당 예시는 좌표정렬을 예시로 들었습니다. 우선 x,y좌표를 넣을 Point 객체를 생성해줍니다. class Point { int x; int y; Point(int x, int y){ this.x = x; this.y = y; } } 테스트할 데이터도 미리 생성해줍니다. 예시로 List안에 5개 정도의 좌표값을 넣어주었습니다. clas..

반응형