FrontEnd/프로그래머스

    [JS] 덧칠하기

    reduce를 활용해서 배열의 앞 공간에는 현재 칠한 횟수를, 뒷 공간에는 지금까지 칠한 공간의 뒷 좌표를 넣어주었다. 뒷 좌표만 넣어준 이유는 페인트질을 할때 안칠하는 공간이 있을 수 있기 때문이다. function solution(n, m, section) { return section.reduce((a,c) => a[1]

    [JS] 바탕화면 정리

    정리해야 하는 폴더들의 x,y 좌표들을 모두 구한뒤, 각 좌표의 최솟값을 시작 좌표로 두고, 각 좌표들의 최댓값을 끝 좌표로 두면 정답을 구할 수 있다. function solution(wallpaper) { const rowLen = wallpaper[0].length const colLen = wallpaper.length const xList =[] const yList = [] for (let i=0 ; i

    로그인 성공

    filter를 사용해서 id를 비교하였고, 비밀번호까지 일치하는 경우에만 login이 나오도록 설정해주었다. function solution(id_pw, db) { const [id,pw] = id_pw var ary = db.filter((el) => el[0]===id); const ret = ary.length ? ary[0][1] === pw ? "login":"wrong pw" : "fail" return ret; }

    [JS] 특이한 정렬

    자바스크립트 sort함수의 속성을 활용하면 조금 깔끔하게 풀 수 있다. return되는 값이 양수면 뒤엣값이 먼저, 그렇지 않으면 앞의 값이먼저 오게되는 속성을 활용하면 된다. function solution(numlist, n) { return numlist.sort((a,b) => { const [aGab, bGab] = [Math.abs(a-n), Math.abs(b-n)] if(aGab === bGab) return b-a return aGab-bGab }) }

    [JS] 겹치는 선분의 길이

    결국 선분들을 그릴때 첫번째 선분과 마지막 선분이 존재하게 되는데, 이를 이용해서 해결하였다. start에 최초로 그려지는 선분의 시작점을, end에 마지막에그려지는 선분의 종단점을 입력해두고 그 차이만큼 0으로 채워진 리스트를 만들어준다. 이후 각 선분들의 길이를 idx에 대입하여 1씩 더해준다. 선분들을 다 더해주었을때 리스트에 2 이상인 부분들은 겹친부분이 된다. function solution(lines) { const start = Math.min(...lines.flat()) const end = Math.max(...lines.flat()) const lst = [...Array(end-start)].fill(0) lines.forEach(el => { for(let i=el[0];i c>1..

    [JS] 저주의 숫자 3

    3으로 나누어지거나 3이 포함되어있으면 그 수만큼 n을 늘려주면 된다. 중요한건 늘어난 부분또한 계산을 해주어야 한다 function solution(n) { for (let i =1 ; i