본문 바로가기

분류 전체보기200

[GDG Korea Android] 신입으로 취업하기 Chapter 1. 신입으로 취업하기 포트폴리오 작성 요령 1. 서비스 소개는 '간단하게' 2. 사용할 기술 스택 - 이력서에 매칭되도록 작성 / ex) 코루틴을 쓸 줄 안다 했으면 적어야함. 3. 내가 기여한 경험 / 무언가를 고민하고 해결해본 경험, 문제 해결력을 포트폴리오에 드러내기.. 4. 갈등 해결 경험 / 소통도 잘해야함! cUlture Fit 면접을 봄. 갈등 해결 에피소드 .. 사례 몇 개를 .... 5. 정량적 성과 (특허, 논문, 수상..) / 지원 전략 N년차 공고에 과감히 지원하기 블로그, 깃허브, 포트폴리오에 잘 정리해둔다면 지원... 지원 자격에 해당한다는 것을 제안. 낮은 우선 순위의 회사부터 지원하기 1. 첫 면접은 잘 보기가 어려움 2. 여러 회사에 붙었을 때 결정을 쉽게 .. 2024. 3. 24.
[이것이 코딩테스트다] Chapter 05 DFS/BFS - 미로 탈출 N, M 직사각형 형태의 미로에 갇혀 있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야한다. 동빈이의 위치는 (1,1)이고 미로의 출구는 (N,M) 의 위치하며 한 번에 한 칸씩 이동할 수 있따. 괴물이 있는 부분은 0, 괴물이 없는 부분은 1로 표시되어 있따. 동빈이가 탈출하기 위한 최소 칸의 개수를 구하시오. 칸을 셀 때는 시작칸과 마지막 칸을 모두 포함해서 계산한다. Sol) BFS를 이용했을 때 매우 효과적으로 해결할 수 있다. BFS는 시작 시점에서 가까운 노드부터 차례대로 그래프의 모든 노드를 탐색하기 때문이다. 그러므로 (1,1) 지점에 서부터 BFS를 수행하여 모든 노드의 값을 거리 정보로 넣으면 된다. 특정한 노드를 방문하면 그 이전 노드의 거리에 1을 더한 값을 리스트에 넣는.. 2024. 3. 23.
[이것이 코딩테스트다] Chapter 05 DFS/BFS - 음료수 얼려 먹기 N*M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램 Sol) 이 문제는 DFS로 풀 수 있다. 0인 값이 상,화,좌,우로 연결되어 있는 노드를 묶으면 오른쪽과 같이 세 묶음이 나올 것. 이러한 묶음을 찾아주는 프로그램을 어떻게 작성할 수 있는가? DFS 를 이용하자면, 1. 특정한 지점의 주변 상, 하, 좌, 우를 살펴본 뒤에 주변 지점 중에서 값이 '0' 이면서 아직 방문하지 않은 지점이 있다면 해당 지점을 방문한다. 2. 방문한 지점에서 다시 상, 하, 좌, 우를 살.. 2024. 3. 23.
[프로그래머스] DFS/BFS - 게임 맵 최단거리 아직 BFS가 낯설어서! 다른 분 코드 참고 from collections import deque def solution(maps): # 방향 설정 : 앞,아래,뒤,위 dx = [-1,0,1,0] dy = [0,1,0,-1] result = 0 n = len(maps) # 행 개수 m = len(maps[0]) # 각 열마다 몇 개 있는 지, ck = [[0]*m for _ in range(n)] # n*m 2차원 배열 생성 dis = [[0]*m for _ in range(n)] # n*m 2차원 배열 생성 queue = deque() # 큐 생성 ck[0][0] = 1 #방문처리 dis[0][0] = 1 #방문처리 queue.append((0,0)) #큐에 삽입 while queue: now = qu.. 2024. 3. 22.
[이것이 코딩테스트다] Chapter 02. DFS/BFS 이어서 인접 행렬 방식 : 모든 관계를 저장하므로 노드 개수가 많을 수록 메모리가 불필요하게 낭비 인접 리스트 방식 : 연결된 정보만을 저장하기 때문에 메모리를 효율적으로 사용 인접 리스트 방식은 인접 행렬 방식에 비해 정보를 얻는 속도가 느림 But. 인접 리스트 방식은 인접 행렬 방식에 비해 메모리 공간의 낭비가 적다. DFS는 스택 자료구조를 이용하며 구체적인 동작 과정은 다음과 같다. 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다. 2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3. 2번의 과정을 수행할 수 없을 때까지 반복한다. 깊이 우선 탐색 알고리즘인 DFS는 .. 2024. 3. 21.
[이것이 코딩테스트다] Chpter 05 DFS/BFS 탐색 - 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 자료구조 - 데이터를 표현하고 관리하고 처리하기 위한 구조 삽입 : 데이터를 삽입한다 삭제 : 데이터를 삭제한다. 스택 - First IN Last Out 나중에 들어온 것이 먼저 빠짐. 샌드위치 구조 stack = [] stack.append(4) stack.pop() 큐 - First In First Out ex. 놀이공원 처음에 들어온 사람이 먼저 나감 queue = deque() queue.append(5) queue.popleft() print(queue) -> 먼저 들어온 순서대로 출력 queue.reverse() -> 역순으로 바꾸기 재귀 함수 자기 자신을 다시 호출하는 함수 DFS 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 .. 2024. 3. 20.