DFS(Depth-First Search): 깊이 우선 탐색 Stack(OR 재귀)로 구현 # 첫번째: 스택에 넣고 방문처리하기 # 두번째부터: 스택에 있는 것 하나 빼서 방문하지 않은 것이 있으면, 스택에 넣고 방문처리하기 def dfs(graph, vertex, visited): visited[vertex] = True # 스택에 넣고 방문처리하기 print(vertex, end=' ') for i in graph[vertex]: # 스택에 있는 것 하나 빼서 if visited[i] == False: # 방문하지 않은 것이 있으면 dfs(graph, i, visited) # (재귀) BFS(Breath-First Search): 너비 우선 탐색 Queue로 구현 from collections imp..
페이징 처리를 위해 클라이언트로 부터 Query Parameter로 page를 받도록 했다. 페이징 처리는 page와 numOfPage를 통해 limit 절로 SQL을 구성했는데, 클라이언트에서 처리를 쉽게 하기 위해 isExistNextPage를 따로 넘겨주고 있었다. const express = require('express'); module.exports = function () { const app = express(); // 중간 생략 } // 여기서 req는 Express.js를 통해 생성한 app의 request이다. const { numberOfPage, page } = req.query; 여기서 numberOfPage와 page는 클라이언트 쪽에서 아무리 Int 값을 넘겨준다고 하더라도,..
Optional을 모르고 Swift를 사용하는 것은 Swift의 절반을 모르고 사용하는 것과 같다고 한다. (중요하다는 것만 알고, 개념을 명확하게 정리하지 않아서 개발할 때 애매한 부분은 매번 구글링하면서 찾곤 했는데, 제대로 정리 GO.) 1. Optional (옵셔널) 1) 개념 Swift - Apple Developer Swift는 iOS, macOS, tvOS 및 watchOS에서 사용할 수 있는 강력하면서도 직관적인 프로그래밍 언어입니다. Swift 코드 작성은 대화식으로 재미있고, 구문은 간결하면서도 표현력이 풍부하며, Swift에는 개 developer.apple.com 위의 공식 홈페이지에서도 알 수 있듯, Swift는 안정 중심 설계(Designed for Safety) 라는 특성을 가..