구현

문제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;}); 이어서 각 나라별 등수를 매겨야하는데, 주의할..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 원형 탐색과 순열을 이용해 풀이를 진행했다. 중요한 것은 로직의 구성인거 같다.몇 명을 선택할 것인가?정해진 인원을 누구로 채울것인가?어디 부터 시작할 것인가?각 인원이 어디까지 커버할 수 있는가?위의 네 가지 로직을 구현한다면 문제없이 문제 풀이가 가능할 것이다.코드function solution(n, weak, dist) { const getPermutation = (arr, n) => { if (n === 1) return arr.map((e) => [e]); let res = []; for (let i = 0;..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 초반에 접근접을 잘 찾은것같다.첫 풀이에서는 DFS를 이용해 B가 최대로 많은량의 물건을 가져가 A가 최소의 값을 갖도록 했다.하지만, 방문 여부를 기록하는 과정에서 문제가 있었고, 이전의 코드에서는 시간 초과가 발생했다. 그래서 A와 B의 점수?를 DFS 함수에 전달하여 함수 내부에서 Set 자료형에 현재의 인덱스와 각각의 점수를 기록했다.이는 해당 물건의 인덱스에서 A가 가져간 경우와 B가 가져간 경우를 따로 계산해야 하기 때문이다. 코드function solution(info, n, m) { let answer = Infinit..
58청춘
'구현' 태그의 글 목록