본문 바로가기

분류 전체보기43

[백준 BOJ] 1074 : Z (C++) https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 어떻게 보면 그냥 구현이라고 볼 수 있을 것 같은데, 그래도 이 문제 같이 재귀가 핵심 아이디어인 문제들은 조금 다른 느낌이 있어서 재귀 카테고리로 따로 모은다 #include using namespace std; int func(int n, int r, int c) { // base condition if (n == 0) return 0; // 0, 1, 2, 3 section 중 어디에.. 2021. 8. 16.
[백준 BOJ] 4963 : 섬의 개수 (C++) https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 아이디어 흐름 1. 아이디어 구상 1. 해당 위치에서 주변으로 뻗어나가는 탐색이 필요 => DFS, BFS 모두 가능할 것 같다. 2. 가로, 세로, 대각선 모두 연결을 확인해야 하므로 탐색은 dx = { 1, 1, 0, -1, -1, -1, 0, 1 } dy = { 0, 1, 1, 1, 0, -1, -1, -1 } dx[i], dy[i] 인덱스를 이동시키는 방식으로 상하좌우 대각선 탐색 (.. 2021. 8. 14.
[Node.js] error handling, custom error message 등 팀프로젝트 중 사용자 인증, 허가 부분 백엔드 부분을 작성하게 되었는데, 비정상적인 입력 등 뭔가 예외적인 사항들을 프론트에서 처리하는 것인지 백엔드에서 처리하는 것인지 잘 몰라서 예외처리 부분을 알아보던 중, mongoose validation이라는 항목을 발견했다. 예외처리로 의미없는 false를 그냥 보내는 것보다는, 백엔드에서 뭐가 왜 잘못되었는지 메시지를 찍어서 json으로 보내주는 게 프론트분 입장에서도 편하실 것 같다는 생각이 들어 내가 작성하기로 했고, mongoose의 built in validator를 이용해서 cusmtom error message를 작성한 후 해당 message를 출력하는 error handling 방법에 대해 알아보았다. https://mongoosejs.com/d.. 2021. 8. 12.
[백준 BOJ] 1260 : DFS와 BFS(C++) https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net #include #include #include #include using namespace std; bool visited[1001]; vector graph[1001]; // 1. 방문처리 // 2. 현재 노드 출력 // 3. 현재 노드의 인접 노드 개수만큼 반복문 실행 // 4. 반복문에 의한 인접 노드가 방문되지 않았다면 dfs 재귀호출 void dfs.. 2021. 8. 10.
[백준 BOJ] 6588 : 골드바흐의 추측(C++) https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 아이디어 흐름 1. 아이디어 구상 소수에 대한 문제가 크게 특정 범위 안의 소수를 알아야하는 경우, 해당 수가 소수인지 판별하는 경우 이렇게 두 가지가 있다고 생각하는데, 해당 문제는 1,000,000 까지의 소수를 알아야했으므로 에라토스테네스의 체를 이용하기로 했다. 또한 그렇게 소수를 판별하고, 소수만을 따로 모은 prime_arr 를 만들어서 int tmp = num .. 2021. 8. 5.
[JavaScript] 자바스크립트 동작 원리와 비동기 처리 방식 1. 브라우저가 자바스크립트를 실행하는 방식 자바스크립트는 단일 쓰레드 (single-thread) 방식으로 동작한다. 단일 쓰레드로 동작한다는 것은 하나의 작업만을 처리할 수 있다는 것을 의미한다. 하지만 우리가 웹 애플리케이션을 사용하다보면 동시에 여러 작업이 이뤄지는 것 같은 느낌을 받는데, 이렇게 자바스크립트의 동시성을 지원하는 것이 바로 이벤트 루프이다. 뭔가 아래 사진에서부터 처음보는 게 한가득이지만, 하나하나 어떤 역할인지 알아보고자 한다. 위 이미지에서 자바스크립트 엔진은 살구색으로 칠해진 저 두 부분만을 의미한다. 구글의 V8엔진을 비롯한 대부분의 자바스크립트 엔진은 크게 2개의 영역으로 나뉜다. Call Stack (호출 스택) 함수가 호출되면 호출된 함수는 call stack에 순차적.. 2021. 8. 3.