javascript 4

[JavaScript] 구간 합 구하기 5

문제 설명표와 구간을 나타내는 테스트 케이스가 주어질 때, 그 구간까지의 합을 구하는 문제이다. 만약 (2,2) - (3,4)의 구간합을 구하는 문제에서는 파란색 칸만큼 더하여 3+4+5+4+5+6 = 27이다. 문제 풀이구간합으로 풀 수 있었다.우선 2차원 배열 dp를 선언한다. dp[i][j]는 (0,0) 부터 table[i][j] 까지의 합이다.그림에서 보다싶이, 파랑과 빨강이 겹치는 부분이 존재하기 때문에 공통 된 부분은 빼줘야 한다. 코드로 나타내면 다음과 같다. 우선 dp를 (n+1)x(n+1) 사이즈를 0으로 초기화해주고,1) 왼쪽 dp 값 + 오른쪽 dp 값을 더한다.2) 대각선 dp 값을 빼준다.3) 현재 값을 더해준다. 이 과정을 통해 dp에 (0,0) 부터 현재 좌표까지 누적한 값들..

Algorithm 2025.03.21

[JavaScript] 프로그래머스 - 정수 삼각형

목차1. 문제 접근2. 문제 풀이3. 정답 코드1. 문제 접근삼각형의 맨 꼭대기에서 바닥까지 내려가면서, 거쳐한 수들의 합이 최댓값이 되는 수를 리턴한다.아래칸으로 이동할 때는 왼쪽 대각선, 오른쪽 대각선 아래로 이동한다. 화살표 방향으로 이동하면서 그 수들을 계속 더해주면 되기 때문에, 누적합 문제이다.누적합이란, a[i] = a[i-1] + ??이런식으로 구현하는 것을 말한다. 그렇다면 2차원 배열로 주어지는 triangle 배열에서는 어떤식으로 누적합을 해줘야 할까? i = 2일 경우를 살펴보자✔ j = 0 또는 j == i 일 때를 제외하고, 즉 맨 앞과 맨 뒤를 제외하고는 기본적으로 화살표가 양쪽에서 오는 것을 확인할 수 있다.그 화살표들 중 최댓값을 누적해서 더해주면 된다.triangle[i]..

Algorithm 2025.02.15

[Javascript] 가장 먼 노드

목차1. 문제 풀이2. 정답 코드 (shift 연산 x)3. 시간 복잡도 1. 문제 풀이1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하는 방법- bfs 코드를 순회한다.- visited 배열에 깊이(현재 노드까지의 간선의 개수)를 저장한다.2. 정답 코드 (shift 연산 x)shift() 연산을 O(1)로 만들기 위해 front 변수를 사용한다. - 큐에서 노드 하나를 제거하기 위해(1) q[front] 에서 노드를 꺼냄(2) front++이 두개의 연산(1 + 2)을 합쳐서👉 var cur = q[front++] - 언제까지 반복하는지👉 while(front function solution(n, edge) { var answer = 0; var edges = Array.from({l..

Algorithm 2025.02.13

[Javascript] 프로그래머스 - 모음 사전

🧾 목차1. 문제 설명2. 문제 풀이3. 정답 코드1. 문제 설명알파벳 모음 ('A', 'E', 'I', 'O', 'U') 만을 사용하여 만들 수 있는 길이 5 이하의 모든 단어 조합 중입력 문자열(word)은 몇 번 째 인덱스인지 리턴하는 문제이다. 입출력  제한 사항만들 수 있는 단어의 최대 길이는 5 이하이다. 👉 조합을 구현할 함수에서, 현재 단어의 길이가 5다. => 즉시 리턴해야함2. 문제 풀이1) 변수 선언index 변수는 조합을 만들어낼 때마다 1씩 증가를 시킬 예정이다. 2) 조합 함수조합 함수를 구현한다. ⭐ Key point이 때, 얼리 리턴 조건은 다음과 같은데,  1) 원하는 알파벳이 나왔을 경우 => 정답  2) 조합한 문자열이 5글자일 경우 => 제한 조건 (1  이 경우를..

Algorithm 2025.01.22
728x90