반응형

전체 글 211

[프로그래머스/Python] 순위 - Level3

https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 이 문제는 처음봤을 때 이기고 지는 관계이므로 선후관계가 있다고 생각해서 위상정렬을 사용해서 풀어야겠다고 생각했었다. 위상정렬로 풀려고보니 위상정렬을 사용하기 위한 조건을 만족하지 못했다. 다른 사람의 풀이를 보고 사용한 알고리즘만 확인했다. 플로이드 워셜 알고리즘을 사용하면 풀 수 있었다. 예전에 공부한 것을 바탕으로 문제를 풀었다. def solution(n, results): answer = 0 graph = [[0] * (n+1) for _ in range(n+..

[프로그래머스/Python] 가장 먼 노드 - Level3

https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 이 문제는 최단거리를 찾는 문제로 BFS 로 풀 수 있었다. 전형적인 BFS 문제여서 기본적인 BFS 구조만 알고 있다면 쉽게 풀 수 있을 것이다. 최근에 BFS를 공부했어서 쉽게 풀 수 있었던 것 같다. from collections import deque def solution(n, edge): answer = 0 graph = [[] for _ in range(n+1)] # 연결된 노드 정보 그래프 distance = [-1]..

[Node.js] ws 모듈과 Socket.IO 로 웹 소켓 사용하기

웹 소켓이란? 웹 소켓은 HTML5에 새로 추가된 스펙으로 실시간 양방향 데이터 전송을 위한 기술입니다. 최신 브라우저는 대부분 웹 소켓을 지원하고 노드에서는 ws나 Socket.IO 같은 패키지를 통해 웹 소켓을 사용할 수 있습니다. 웹 소켓이 생기기 전에는 주기적으로 서버에 새로운 업데이트가 있는지 확인해서 새로운 내용을 가져오는 방법을 사용했습니다. 웹 소켓은 연결이 이루어지고 나면 계속 연결된 상태이므로 업데이트가 있는지 요청을 보낼 필요가 없고 업데이트가 있으면 서버에서 클라이언트에게 바로 알려줍니다. HTTP 프로토콜과 포트를 공유할 수 있으므로 다른 포트에 연결할 필요도 없습니다. 1. ws 모듈로 웹 소켓 사용하기 socket.js 파일을 생성하고 웹 소켓 로직 코드를 작성합니다. 익스프레..

Back-end/Node.js 2021.08.06

[Node.js] 노드 서비스 테스트 하기

이번 포스팅에는 노드 서비스를 테스트하는 방법에 대해 알아보겠습니다. 유닛테스트, 통합테스트, 부하테스트 등 여러 가지 테스트가 있는데 하나씩 차근차근 알아보겠습니다! 1. 유닛 테스트 - 작은 단위의 함수나 모듈이 의도된 대로 정확인 작동하는지 테스트하는 것 테스트에 사용할 패키지를 설치하고, package.json 을 수정합니다. 테스트용 파일은 파일명과 확장자 사이에 test 나 spec을 넣으면 됩니다. 콘솔에 "npm test" 를 입력하면 테스트 코드를 실행할 수 있는데 파일명에 test 나 spec 이 들어간 파일들을 모두 찾아 실행합니다. npm install -D jest // 개발시에만 사용하므로 -D 옵션 사용 // package.json { //.. 생략 "scripts": { "s..

Back-end/Node.js 2021.08.03

[프로그래머스/Python] 징검다리 - Level4

https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 이 문제는 이분 탐색 문제였다. 이분 탐색 문제는 어느 문제든 코드 구조는 정말 비슷한데 이분 탐색할 대상? 기준? 을 찾는 것이 어려운 것 같다. 여러 문제를 풀어보면서 보는 시각을 키워야 할 것 같다. 이 문제에서는 최소 거리를 이분 탐색 대상으로 삼았다. 최소 거리를 특정한 다음 바위를 제거해가면서 n과 맞는지 확인한다. n과 최소 거리가 모두..

[프로그래머스/Python] 입국심사 - Level3

https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 이 문제는 이분탐색 문제였다. 어느 부분을 이분 탐색하는지 감이 잡히지 않아서 다른 사람들이 푼 방법을 보고 코드를 짰다. def solution(n, times): answer = 0 left = 1 right = max(times) * n # 이분탐색 수행 while left < right: mid = (left + right) // 2 count = 0 fo..

[Node.js] 웹 API 서버 만들기 (2)

https://soohyun6879.tistory.com/176 [Node.js] 웹 API 서버 만들기 (1) 저번에 만들었던 SNS 서비스인 NodeBird 앱을 사용하여 웹 API 서버를 만들어보겠습니다. API 는 Application Programming Interface 로 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하 soohyun6879.tistory.com 이전 포스팅에서는 웹 API 서버와 토큰 인증하는 부분을 만들었습니다. 이번 포스팅에서는 웹 API 서버에 내가 올린 게시글과 해시태그 검색 결과를 가져오는 부분을 추가하고, 사용량 제한을 구현해보겠습니다. 1. 내가 올린 게시글과 해시태그 검색 결과 가져오기 먼저 웹 API 서버 부분을 수정하겠습니다. nodeb..

Back-end/Node.js 2021.08.01

[프로그래머스/Python] 여행경로 - Level3

https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 이 문제는 모든 값을 확인하면서 경로를 구하는 문제이기 때문에 DFS 문제였다. 각 시작점의 인접 리스트를 구한 후 도착점을 알파벳 순서로 정렬하는 것까지는 생각할 수 있었다. 처음에는 재귀함수로 이 문제를 풀려고 했었다. 인접리스트에 값이 있으면 재귀함수를 호출하고 재귀함수가 끝나면 경로에 추가하는 식으로 했는데 뭔가 잘 안되..

[Node.js] 웹 API 서버 만들기 (1)

저번에 만들었던 SNS 서비스인 NodeBird 앱을 사용하여 웹 API 서버를 만들어보겠습니다. API 는 Application Programming Interface 로 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점을 의미합니다. 따라서 웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구입니다. 제공하고 싶은 부분만 API를 열어 둘 수 있고 인증된 사람만 일정 횟수 내에서 가져가게 제한을 둘 수도 있습니다. 1. 웹 API 서버 만들기 package.json 파일을 생성한 후 "npm install" 을 콘솔에 입력하여 패키지를 설치합니다. { "name": "nodebird-api", "version": "0.0.1", "description"..

Back-end/Node.js 2021.07.30

[Node.js] 익스프레스로 SNS 서비스 만들기 (3)

https://soohyun6879.tistory.com/174 [Node.js] 익스프레스로 SNS 서비스 만들기 (2) https://soohyun6879.tistory.com/170 [Node.js] 익스프레스로 SNS 서비스 만들기 (1) 익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이. soohyun6879.tistory.com 이전 포스팅에서는 로그인을 구현해보았는데 이번 포스팅에서는 이미지 업로드, 게시물 업로드, 팔로잉, 해시태그 검색 기능을 만들어보겠습니다! 1. 이미지 업로드, 게시글 업로드 게시물을 작성할 때 이미지도 같이 업로드할 수 있습니다. 이미지를 업로드 하기 위해 multer 모듈을 사용하겠습니다. 먼..

Back-end/Node.js 2021.07.27
반응형