Javascript4 [Javascript 알고리즘] 연속된 부분 배열의 최대 합 문제정수 배열과 윈도우 크기 k가 주어졌을 때, 연속된 k개의 원소의 합 중 최대값을 찾는 함수를 작성해주세요.풀이 접근잘 몰르겠어서 클로드랑 차근히 풀고 나니 이해가 되었다..첫번째 묶음의 합을 구한다.그 합을 최대값으로 저장한다.한칸씩 이동하면서 최대값을 갱신한다. 이때 한칸씩 이동하는 방법: 합에서 이전 묶음의 첫번째 요소를 빼고, 이번묶음의 마지막 요소를 합에 더한다.풀이function maxSumSubarray(arr, k) { let sum = 0; // 1. 첫번째 합을 구한다. for (let i = 0; i 다른 사람 풀이function maxSumSubarray(arr, k) { // 최대값을 저장할 변수 let maxSum = 0; // 배열을 처음부터 끝까지 순회 for.. 2025. 1. 22. [javascript 알고리즘] 접미사인지 확인하기 문제어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.풀이접근처음에는 split으로 분할해서 분할되는 갯수로 하려고 했다. -> 이렇게 하니 ana 가 2번 들어가서 첫번째 ana으로 분리되었다.endWith라는 문자열 메서드를 알게되었다. 간단하게 풀이가 가능했다. 풀이function solution(my_string, is_suffix) { return my_s.. 2025. 1. 14. [javascript 알고리즘] 3진법 뒤집기 문제자연수 n이 주어질 때, n을 3진법으로 변환하고 이를 뒤집은 후, 다시 10진법으로 변환한 값을 return 하도록 함수를 작성해주세요.제한사항n은 1 이상 100,000,000 이하인 자연수입니다.입출력 예n = 45result = 7설명:45를 3진법으로 변환하면 "1200"이를 뒤집으면 "0021"이를 10진법으로 변환하면 7풀이function solution(n) { const 삼진법 = n.toString(3); const 거꾸로 = [...삼진법].reverse().join(""); return parseInt(거꾸로, 3);}다른 사람 풀이// 한 줄로 풀기const solution = n => parseInt(n.toString(3).split("").reverse().join(.. 2025. 1. 13. 자바스크립트의 비동기 처리에 대해 알아보자 자바스크립트는 싱글 쓰레드 기반으로 동작하는 언어입니다. 하지만 실제로는 여러 작업을 동시에 처리하는 것처럼 보이는데요. 이러한 비동기 처리가 어떻게 이루어지는지 자세히 알아보겠습니다.비동기 처리의 핵심 요소1. Call Stack자바스크립트 엔진이 코드를 실행하는 메인 쓰레드입니다. 여기서는 동기적으로 코드가 순차적으로 실행됩니다.2. Web APIs브라우저에서 제공하는 API로, setTimeout, fetch, DOM 이벤트 등의 비동기 작업을 처리합니다. Node.js 환경에서는 C++ APIs가 이 역할을 담당합니다.3. Callback Queue비동기 작업이 완료된 후 실행될 콜백 함수들이 대기하는 곳입니다.4. Event LoopCall Stack이 비어있을 때, Callback Queue의.. 2025. 1. 12. 이전 1 다음