TIL
TIL_20230408
번잔중
2023. 4. 8. 23:07
오늘 할 일
- LeetCode 데일리 문제 풀기
- KB라이프생명 자소서 작성
- 운동하기 - 웨이트 트레이닝
오늘 배운 것
LeetCode 데일리 문제 풀기
- 오늘의 문제: 133. Clone Graph(https://leetcode.com/problems/clone-graph/)
- 문제 조건
- 연결된 무방향 그래프에서 노드의 참조가 주어진다.
- 그래프의 전체 복사본(클론)을 반환한다.
- 그래프의 각 노드에는 인접 노드의 값(int)과 리스트(List[Node])가 포함된다.
class Node {
public int val;
public List<Node> neighbors;
}
테스트 케이스 형식
단순화를 위해 각 노드의 값은 노드의 인덱스(1-인덱스)와 동일하다. 예를 들어 첫 번째 노드(val == 1), 두 번째 노드(val == 2) 이다. 그래프는 인접 목록을 사용하여 테스트 사례에 표시된다.
인접 리스트는 유한 그래프를 나타내는 데 사용되는 순서가 지정되지 않은 목록의 모음이다. 각 목록은 그래프에서 노드의 인접 라우터 집합을 설명한다.
지정된 노드는 항상 val = 1인 첫 번째 노드가 된다. 지정된 노드의 복사본을 복제된 그래프에 대한 참조로 반환해야 한다.
- 문제 해결 과정
- 재귀적인 방법으로 해결할 수 있다. dfs 방식으로 그래프를 탐색하면서 복사해준다.
- map에 기존 node와 복사할 newNode를 함께 저장하는 방식을 사용해서 dfs로 탐색시 빠져나올 수 있도록 한다.
- node가 null인 경우는 null 반환, map의 key 중에서 node가 존재하면 해당 key의 value인 newNode를 반환한다.
- 이외의 경우는 새롭게 newNode를 생성해서 node의 value를 복사해주고, map에 담은 후에 neighbors를 순회하면서 재귀적으로 탐색한다.
KB라이프생명 자소서
- 작년에 지원했던 회사인데, 채용연계형 인턴 공고가 나서 다시 지원했습니다.
- 이전에는 개발에 대한 경험이 없어서 면접 때 할 이야기가 많이 없었습니다만 이번에는 달랐으면 하는 바람이 있습니다.
- 잡다라는 플랫폼을 요즘 많이 사용하는 것 같네요.
운동하기 - 웨이트 트레이닝
느낀점
- 리트코드는 잊을만 하면 Node를 가지고 문제를 만드는데, 설명을 좀 친절하게 해줬으면 좋겠습니다. ㅡㅡ
- 요즘 공채가 많이 올라와서 자소서 + 알바 + 알고리즘 공부 + 운동까지 하다보니 물리적으로 시간이 모자랍니다. ㅠㅠ 코드의 리팩토링, 스프링 인강, 자바 공부, 코드스테이츠 교육 콘텐츠 정리 등 많은 일을 해야 하는데 걱정이 많습니다..
- 그래도 데드리프트 졸잼
- 내일은 자소서 때문에 바쁜 관계로 리트코드 하루 쉬어갑니다.
내일 할 일
- KB라이프생명 자소서 작성
- 네이버 자소서 작성