일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프론트엔드
- 제로베이스
- til
- lodash
- 자바스크립트 알고리즘 문제
- 자바스크립트 연결리스트
- leetcode문제풀이
- 자바스크립트 알고리즘
- 자바스크립트 문제
- stack문제
- react
- NPM
- 자바스크립트 문제 풀이
- 자바스크립트 문제풀이
- 타입스크립트
- Baekjoon
- Next
- leetcode
- 리액트
- Next.js13
- 자바스크립트코딩테스트
- HTML
- JS
- CSS
- 알고리즘문제풀이
- 자바스크립트
- 프로그래머스
- 리액트쿼리
- next13
- JavaScript
- Today
- Total
목록Code note/자바스크립트 알고리즘 문제풀이 (56)
코드노트
Longest Common Prefix 가장 긴 공통 접두사 구하기 문제설명 더보기 문자열 배열 중에서 가장 긴 공통 접두사 문자열을 찾는 함수를 작성하십시오. 공통 접두사가 없으면 빈 문자열 ""을 반환합니다. - 문제만 보면 어려운건 없었다. 처음에는 문자를 split으로 나누어서 비교를 해야겠다고 생각했었다. - 결국 index를 활용하는 방법으로 문제를 풀었다. let strs = ["flower", "flow", "flight"]; var longestCommonPrefix = function (strs) { let result = ""; if (strs === null || strs.length === 0) { // input이 없거나 길이가 0이면 종료 return result; } for ..
Roman to Integer 문제 설명 더보기 Roman to Integer Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 더보기 로마 숫자는 I, V, X, L, C, D, M의 7가지 기호로 표시됩니다. 예를 들어, 2는 로마 숫자로 II로 표기되며 두 개만 더하면 됩니다. 12는 단순히 X + II인 XII로 작성됩니다. 숫자 27은 XXVII, 즉 XX + V + II로 표기됩니다. 로마 숫자는 일반적으로 왼쪽에서 오른쪽으로 큰 것에서 작은 것 순으로 표기합니다. 그러나 4에 대한 숫자는 IIII가 아닙니다. 대신 숫자 4는 IV로 기록됩니다. 1은 5보다 앞에 있기 때문에 빼서 4가 됩니다. IX로 쓰여진 숫자 9에도 동일한 원칙이 적용됩니다. 빼기가..
더보기 문제설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution ..
더보기 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. function solution(arr1, arr2) { var answer = []; for (let i = 0; i < arr1.length; i++) { let sum = []; for (let j = 0; j < arr1[i].length; j++) { sum.push(arr1[i][j] + arr2[i][j]); } answer.push(sum); } return answer; } - 아직도 2차원 배열에 접근하는게 조금 어렵다... - for문으로 간단하게 해결을 ..
process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { // 입력받은 숫자를 data에 받는다. const n = data.split(" "); // data를 배열로 변경한다. const a = Number(n[0]), b = Number(n[1]); // a는 별의 갯수, b는 줄의 수 let box = ""; // 직사각형 변수 for (let i = 0; i < b; i++) { // 줄의 수 for (let j = 0; j < a; j++) { // 행의 수 box += "*"; } box += "\n"; } console.log(box) }); - 처음 문제 코드를 보면 이게 뭐지 싶을 수 있다. 일반적인 문제 코드와는 다르..
더보기 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해..
더보기 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니..
더보기 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨..
더보기 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. participant completion return ["leo", "kiki", "eden"] ["eden", "kiki"] "leo" ["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko" ["mislav", "stanko", "mi..
더보기 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 처음 문제를 보고 이해를 잘못했었다. 처음 괄호가 열리고 마지막에는 닫히기만 하면 되는줄 알고 stratsWith, endsW..