목록전체 글 (127)
소피it블로그
1. BFS: Breadth-First Search 너비 우선 탐색 BFS에서는 큐를 활용한다. 너비 우선 탐색이라는 개념과 FIFO의 특징을 생각해 보면 쉽게 이해할 수 있다. 큐를 사용하여 큐에 먼저 들어간 노드들을 먼저 팝해주는 것. from collections import deque def bfs(graph, node, visited): queue = deque([node]) # 첫 번째 노드로 큐를 만들어줌 visited[node] = True # 해당 노드 방문 기록 while queue: # 큐에 요소가 남아있는 동안 n = queue.popleft() # 큐의 앞에서 요소 빼줌 print(n, end = " ") # 해당 요소 출력 for i in graph[n]: # 해당 요소의 자식 ..
1. 버블 정렬 시간복잡도: O(n^2) # 기본 구현 def bubble_sort(arr): for i in range(len(arr) - 1, 0, -1): for j in range(i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] # 최적화: 스왑이 일어났는지 여부를 체크해줌으로써 정렬이 이미 완료되어있는 경우(즉 스왑이 일어나지 않은 경우) # 더 효율적으로 작동 def bubble_sort(arr): for i in range(len(arr) - 1, 0, -1): swapped = False for j in range(i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1..
팀 프로젝트로 낸 앱 한글킹과 관련하여, 공식적으로는 끝난 프로젝트지만 몇 가지 중요한 업데이트를 준비하고 있다. 고칠 점이 아직 많이 있지만 무엇보다도 아무래도 외국인들을 타겟으로 하는 한글 공부 앱이기 때문에 최대한 다양한 언어로 로컬라이징하는 게 중요하다고 생각한다. 그래서 나를 시작으로 팀원들끼리 각각 언어 두 개씩을 맡아 번역을 하고(=구글 번역기를 돌리고) 앱에 새 언어를 업뎃하는 방식으로 작업을 진행하기로 했다. 지난 주에 끝내야 했지만 바쁘다는 핑계로 어제가 되어서야 시작했다. 가위바위보에서 져서 첫 타자가 되었는데, 우리 프로젝트는 번역되어야 할 문자열들이 스토리보드와 뷰컨트롤러에 불규칙적으로 나뉘어 적혀있었다. 따라서 아무 가이드라인 없이 모두가 맨땅에 헤딩하듯 시작한다면 쓸 데 없는 ..
10년지기 친구를 만났다. 같은 중학교를 나왔지만 말을 해본 것은 고등학교 때가 처음. 내가 아는 사람들 중 공부 가장 잘 하는 사람 탑쓰리 안에 든다고 해도 될 것 같다. 대형펌에 컨펌을 받고 지금은 군대에 가 있는 친구인데, 2월에 한번 보고 8개월만에 처음 보는 자리였다. 오랜 친구들은 참 신기하다. 아무리 오랜만에 봐도 아무런 위화감이 느껴지지 않는다. 어제 만났던 것처럼 편안하다. 곧 좋은 소식이 있을 친구에게 축하의 말을 건네고, 내가 예전에 몇 번 갔던 맛집을 소개해줬다. 정작 밥을 산 것은 친구지만. 취업턱이라고 했다. 나도 머지않아 취업턱을 낼 수 있는 날이 오기를. 친구에게 따로 표현한 적은 없지만 난 그 친구는 맘만 먹으면 뭐든 할 수 있는 친구라고 생각했다. 그런 친구들이 주변에 몇..