Thief of Wealth
꼬리 호출
개발/FrontEnd Interview 2021. 3. 25. 00:36

Tail Call Optimization 꼬리 호출 최적화 - 꼬리 호출함수는 무엇인가요? 꼬리 호출 함수는 함수가 마지막으로 하는 일이, 어떤 함수를 호출해 그 결과를 바로 반환일을 하는 함수를 뜻합니다. 예를 들어서 function func1(any){ return function func2(greeting, ...args){ return greeting(any(...args)); } } 같은 경우가 꼬리 호출 함수이다. - 그것이 어떤 장점을 지니고 있나요? 함수는 일반적인 동작을 설명해보겠습니다. zereight.tistory.com/manage/posts/ 위 포스팅에서 중요한 차이점 하나는, 활성 객체가 충분히 크다면 (원래 크지만), 새로운 활성 객체를 할당할 필요가 없다는 것입니다. 즉, ..

[Javascript][BOJ] 10818 최소, 최대
개발/알고리즘 2020. 12. 23. 20:11

www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 핵심아이디어 머리식힐겸 풀어볼만한 아주 간단한 문제이다. 하지만 Javascript(nodejs)로 풀때 Math.max(...array) 를 사용한 후에 제출하면 분명 런타임에러가 뜰것이다.. 이 문제의 함정은 N이 1,000,000까지 있으며, Math.max를 사용하면 오버플로우가 난다는 것이다. 결국엔 배열에서 max,min 을 리턴하는 함수를 따로 만들면 쉽게 해결 ..

[Javascript][BOJ] 2665 미로만들기
개발/알고리즘 2020. 12. 20. 11:59

www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 핵심아이디어 bfs와 dp를 적절히 섞어쓰면 되는 문제이다. 예전에 python으로 풀었는데 지금 풀어보려하니 아이디어가 잘 떠오르지 않았다. dp[x][y] 를 x,y좌표까지 도달할때 소모해야 하는 최소 검은방의 개수로 정의하고 bfs를 돌리면된다. 그리고 이때에는 visited를 사용하면 안되는데 그 이유는, 각 방의 최소값을 계속 판단하여 dp값을 업데이트해주어야 하는데, visited으로 초반에 방문처리를 해버..

[Javascript][BOJ] 1697 숨바꼭질
개발/알고리즘 2020. 12. 13. 20:24

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 핵심 아이디어 bfs를 사용하는 문제이다. 기존 NxN 보드에서 사용하는 것과 달린 일직선에서 적용한다는 점만 다르며, +1, -1, *2 되는 지점을 큐에 넣어서 탐색하면된다. "use strict"; const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, outp..

[Javascript][BOJ] 10026 적록색약
개발/알고리즘 2020. 12. 8. 01:18

www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 핵심 아이디어 간단한 bfs문제이다. 적록색약일때와 아닐때를 분기 하여 bfs 큐에 넣는 조건으로 사용하면 된다. 적록색약일때 => B/G는 같은 색으로 취급 아닐때 => 각각 다른 색깔로 취급 'use strict'; const { DH_NOT_SUITABLE_GENERATOR } = require('constants'); const readline = require('readline'); const ..

[Javascript][BOJ] 1012 유기농 배추
개발/알고리즘 2020. 12. 6. 12:59

'use strict'; const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const solution = function (input) { const T = parseInt(input.shift()); let [m, n, k] = [-1, -1, -1]; let visited = []; let farm = []; let points = []; let ans = ''; let cnt = 0; const direction = [ [-1, 0], [1, 0], [0, -1], [0, 1], ]; const isValidPoint = (x..

[Javascript][BOJ] 2667 단지번호 붙이기
개발/알고리즘 2020. 12. 5. 21:42

www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. www.acmicpc.net 핵심 아이디어 dfs/bfs 방식으로 풀 수 있는 문제이고 입력 크기가 작기에 dfs로 풀어도 상관없다. dfs는 재귀적으로 더이상 탐색할 노드가 없을 때 재귀를 탈출하게 되는데, 그 점을 이용하여 재귀를 탈출할때마다 방문했던 수를 배열에 추가해주고 출력하면된다. 'use strict'; const readline = require('readline'); const rl = readline.createInterfa..

[Javascript][BOJ] 2606 바이러스 (dfs)
개발/알고리즘 2020. 12. 5. 20:21

www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 핵심아이디어 전형적인 DFS문제라서 딱히 언급할 것이 없다. 연결된 모든간선에 대해 dfs를 수행하되, 방문처리를 한 노드는 방문하지 않으면 된다. 'use strict'; const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const solut..

profile on loading

Loading...