코테준비

문제 설명 문제 풀이 방법 입력의 구성은 차들의 수, 차들이 들어간 순서, 나온 순서 이렇게 3가지이다. 나온 순서를 기준으로 forEach메서드를 이용해 요소들을 순회하며 passed의 요소가 enters에서의 위치를 보면 1. passed의 다른 값이 추월을 하지 않았다면 현제값이 enters의 0번 인덱스에 위치해 있을 것 2. 만약 다른 값이 추월을 했다면 현제 값은 enters에서의 위치가 0번 인덱스가 아닌 다른 인덱스에 위치할 것 1번의 경우 enters.shift()를 이용해 맨 앞 값을 빼주고 다시 1, 2번 로직을 반복해준다. 2번은 추월을 한 경우이므로 현제 값을 enters.splice(enters.indexOf(현제값), 1)로 제거해 준뒤 1, 2번 로직 반복 코드 const p..
문제 설명 문제 풀이 방법 1부터 num까지의 수가 왼쪽에 큰 수의 개수를 비교하며 배열에 추가해준다. 코드 1 // const path = __dirname + '/예제.txt'; let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const num = +input[0]; const rule = input[1].split(' ').map(e => +e); const sol = (n, array) => { let arr = new Array(n); for (let i = 0; i < array.length; i++) { let left = array[i]; let cnt = 0; for (let j = 0;..
문제 설명 문제 풀이 방법 피보나치 수를 구하는 방법은 내가 이전에 정리한 글을 참고해 DP접근법으로 문제를 해결하려했다. top-down방법은 시간초과가 발생해 통과하지 못했고, down-top으로 풀어봤지만 이 역시 마찬가지 였다.... 계속 고민해 보았지만 결국 다른 사람들이 질문한 글을 봤다. 가장 잘 설명된 글에서 이렇게 말했다. 피보나치 수가 78번째 정도만 되어도 정수 범위가 JS에서 허용하는 범위보다 커져 에러가 발생한다. 이를 방지하기 위해 문제에서 "1234567을 나눈 나머지를 리턴" 이라는 조건을 부여한것이다. 이때 글에 나온 %의 속성이 많이 흥미로웠다. (A+B)%C = ((A%C) + (B%C))%C 라는 속성이다. 이 의미가 무엇인가 하면 1, 1, 2, 3, 5, 8에서 (..
문제 설명 문제 풀이 방법 이 문제에서 중요하게 봐야할 것은 split 메서드의 사용법이다. n을 2진수로 만든다음 spilt("1")로 문자열을 배열로 만들어준다. 이때, 1의 개수보다 많이 나올 수 있는데 이것은 1을 기준으로 나누었기 때문에 1 앞뒤에 있는 요소가 반환되었기 때문이다. while문을 통해 n++하며 반복해준다. 이때 위와 같은 방법으로 배열의 길이를 측정해 주어진 n의 경우와 같다면 반복하며 1씩 늘어난 n을 반환해준다. 내가 작성한 코드 const solution = (n) => { let answer = 0; let n1 = n.toString(2).split("1").length; while(true){ n++ if(n.toString(2).split("1").length ==..
문제 출처 링크 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 사항 입력 형식 입력으로 판의 높이 m, 폭 n과 판의 배치 정보 board가 들어온다. 2 ≦ n, m ≦ 30 board는 길이 n인 문자열 m개의 배열로 주어진다. 블록을 나타내는 문자는 대문자 A에서 Z가 사용된다. 출력 형식 입력으로 주어진 판 정보를 가지고 몇 개의 블록이 지워질지 출력하라. 내가 작성한 코드 const solution = (m, n..
문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 사항 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 문제 풀이 방법 이 문제에서 우선적으로 조건을 걸어줘야 한다고 생각한 것은 가장 작은 수를 빼면 빈 배열이 되는 경우 즉, 배열의 길이가 1인 배열은 반드시 [-1]을 반환한다고 작성하는 것이다. 이후, 길이가 2 이상인 배열의 경우에서는 펼침 연산자를 이용해 배열 요소들을 Math..
58청춘
'코테준비' 태그의 글 목록 (23 Page)