구현

문제https://leetcode.com/problems/jump-game/?envType=study-plan-v2&envId=top-interview-150 풀이해당 문제는 두 가지 방식으로 풀이해봤다.하나는 각 칸마다 도달할 수 있는 경우를 기록하는 방법, 또 다른 방법은 마지막 인덱스 부터 도달할 수 있는지 검증하는 방법이다. 코드/** * @param {number[]} nums * @return {boolean} */// 첫 번째 코드// var canJump = function(nums) {// if(nums.length === 1) return true;// const lastIdx = nums.length - 1;// const test = Array.from({len..
문제https://leetcode.com/problems/summary-ranges/?envType=study-plan-v2&envId=top-interview-150 풀이이번 문제는 연속되는 숫자들의 관계를 만들어야 한다.1 2 3 4 7 8 9 10 12 와 같은 수들을 [1, 2, 3, 4] [7, 8, 9, 10] [12] 와 같은 조합으로 이뤄진다.숫자들의 열이 들어오면 연속된 수들만 묶어 정리해야 한다. 이를 위해서는 각 수들의 연속 여부와 다음 수의 저장과 같은 로직을 구현해야 할 필요가 있다. 1번 코드/** * @param {number[]} nums * @return {string[]} */var summaryRanges = function(nums) { if(!nums.lengt..
문제https://www.acmicpc.net/problem/20006 풀이이번 문제는 class를 이용해 풀이해 봤다.딱 보고 대기방을 클래스로 하면 정렬이나 입장과 같은 동작을 메서드로 구현해 조금 더 가독성 좋은 코드를 만들 수 있을것 같았다. 각 대기방을 클래스로 구현해두고 입장 가능 여부, 입장과 같은 동작을 메서드로 구현했다. 이번 문제를 풀며 실수했던 것은 문자열을 sort 메서드를 이용해 정렬할 때는 숫자를 정렬할때 처럼 a - b가 아니라 서로 비교연산자를 이용해야한다는 것이다.sortName() { this.nameList.sort((a, b) => { if (a[1] b[1]) return 1; });} 코드const input = require("fs") .readFil..
문제https://www.acmicpc.net/problem/4659 풀이const input = require("fs") .readFileSync( process.platform === "linux" ? "/dev/stdin" : __dirname + "/example.txt" ) .toString() .trim() .split("\n") .map((e) => e.trim());let answer = [];const checkMou = (st) => { const aeiou = /[aeiou]/.test(st); return aeiou;};const checkTriple = (st) => { let aCnt = 0; let cnt = 0; for (let s of st) { ..
문제https://www.acmicpc.net/problem/2941 첫 번째 풀이처음 시도한 풀이는 문자열을 인덱스별로 탐색을 진행할때 크로아티아 알파벳의 첫 글자가 나오면 그 다음 문자들을 확인하는 방식을 선택했다. 주의할 점은 for문을 이용한 탐색을 진행할 때 전체 길이의 - 2 까지 탐색한다는 것이다. 이는 dz=가 나오면 인덱싱이 안되는 경우의 수가 있을 수 있다고 판단했다. 코드// 첫 시도(성공)const input = require("fs") .readFileSync( process.platform === "linux" ? "/dev/stdin" : __dirname + "/example.txt" ) .toString() .trim() .split("\n");const st..
문제https://www.acmicpc.net/problem/8979 풀이이 문제의 경우는 정렬과 구현을 해야하는 문제이다. 각 나라별 금, 은, 동 메달의 개수에 따른 정렬을 해준다.arr.sort((a, b) => { if (b[1] > a[1]) return 1; else if (b[1] === a[1]) { if (b[2] > a[2]) return 1; else if (b[2] === a[2]) { if (b[3] > a[3]) return 1; else if (b[3] === a[3]) return 0; else return -1; } else return -1; } else return -1;}); 이어서 각 나라별 등수를 매겨야하는데, 주의할..
58청춘
'구현' 태그의 글 목록