Loading...

[javascript] 중첩 배열 평탄하게 하기 (flat, concat, reduce)

javascirpt로 프론트엔드 코딩테스트 준비해야겠다 싶어서 공부하다가 배열을 평평하게 하는 방법을 다시 찾아보았다. 대표적으로 concat와 reduce, flat메서드를 쓸 수 있다. (flat메소드는 처음 봤다) 모든 결과는 [1,2,3,4,5,6]으로 동일하다. const arr=[1,2,[3,4],[5,6]]; const flattened=arr=>[].concat(...arr); const reduced=arr.reduce((acc,items)=>{ return acc.concat(items); },[]); const flatMethodUsed=arr.flat(); const test=[].concat(...arr); console.log(flattened(arr)); console.log(..

[프로그래머스] 삼각 달팽이 (javascript)

삼각달팽이가 이동하는 방향을 아래쪽, 오른쪽, 왼쪽 대각선위로 반복하면서 이동한다 아래쪽: y값 증가 오른쪽: x값 증가 대각선 위 : x값 1감소, y값 1 감소 해당 방향으로 계속 이동하다가 끝에 다다르거나 이미 작성한 원소까지 도달해서 하는 시점이 방향을 새로 바꿀 시점이다. 방향 dir에서 +1하고 반복하기 위해 %연산자로 나눠준다. 달팽이 숫자를 보면 n일 때 1부터 n까지의 합인 n*(n+1)/2까지 이동하는 걸 볼 수 있다 따라서 해당 숫자까지 쓰면 종료시켜준다. 이차원 배열에 맞는 위치에 써준 뒤 내부 배열을 합쳐준다. function solution(n) { const xpos=[0,1,-1]; const ypos=[1,0,-1] const m=new Array(n); for(let i=..

2021. 1. 20. 21:57

코딩마스터즈 프론트엔드 시험 결과는 치킨

멀티캠퍼스에서 프론트엔드 /백엔드 분야 코딩 대회가 있었다. 1등은 맥북이라 기대했는데 2시에 시작하여 3시간 동안 진행될 예정이었던 시험이 무려 5~6시에 시험을 치고 마감시감이 밤 12시가 되었었던 난리가 있었지만 시험 자체는 흥미롭게 봤었다. 해커랭크 플랫폼으로 봤고 자체 web ide에서 봤는데 처음에 어떻게 하는 지 몰라서 갈팡 질팡 ㅠㅠ (장인은 도구를 가리지 않는다고 하지만 나는 장인이 아니었나보다 크흑) 하다가 후반부 되서야 이해해서 급하게 했던 점이 아쉬웠다 다음에 또 보면 더 잘 볼 수 있을 것 같은데 언제 또 할지는 모르겠다 아예 미끄러질 줄 알았는데 치킨이라도 얻어먹게 되었다 감사합니다 취업 정보도 준다고 하는데 어느 정도의 회사 라인까지 정보를 받을 수 있는지 궁금하다

[프로그래머스] 다리를 지나는 트럭 (javascript)

function solution(bridge_length, weight, truck_weights) { let time=[]; let cur_time=0; let sum=0; while(time.length || truck_weights.length){ // 터널에서 나갈 시간이 현재 시간과 같아면 다리 탈출 if(time.length && time[0].time===cur_time){ sum-=time[0].weight; time.shift(); } // 트럭이 더 들어갈 때 if(truck_weights.length && sum+truck_weights[0]

[프로그래머스] 프린터 (javascript)

2021. 03. 31 업데이트된 풀이 그냥 인덱스 위치를 담은 배열을 새로 만든다음에 비교해주면 된다. 기존 배열을 변형시킬 필요 없다. function solution(priorities, location) { var answer = 0; const q=Array(priorities.length).fill(0).map((_,i)=>i); while(q.length>0){ let max=Math.max(...priorities); let x=q.shift(); if(priorities[x]b-a); const sequence=[]; let idx=0; while(priorities){ // console.log(idx) if(priorities[idx]!==sorted_prior[0]){ idx=(id..

[프로그래머스] 기능 개발 (javascript)

계속 틀리다가 다른 코드를 참고하고 틀린 부분을 알아냈다 남은 일수가 5, 1, 1, 1, 2 인 경우 stack에 [5,1,1,1] 이고 현재 남은 일수가 2일 경우 나는 stack의 마지막 1과 비교했는데 그게 아니라 기준은 5이므로 (먼저 끝나는 일) 가장 앞의 원소와 비교해야 했다. 예제를 못찾으면 잘못된 부분을 못찾으니 ㅠㅠ 열심히 여러 문제 풀어봐야지 function solution(progresses, speeds) { var answer = []; let stack=[]; let days=[]; for(let i=0;i

[swexpert] 1284. 수도 요금 경쟁 (java, D2)

package com.ssafy.edu; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); for (int tc = 1; tc r){ caseTwo+=(w-r)*s; } System.out.printf("#%d %d\n",tc,caseOne

[도서리뷰, 책필사] 가재가 노래하는 곳

​ 아버지는 웃지 않았지만 차분한 얼굴이었다. 수염을 깎지 않아 텁수룩했고 왼쪽 관자놀이 위로 감지 않은 검은 머리카락이 흘러내렸다. 하지만 맑은 정신이었다. 아버지는 허리를 굽히고 그물망으로 낚아채고는 털썩 주저앉더니 무릎을 치며 환호성을 올렸다. 카야가 처음 보는 모습이었다. 카야는 만면에 웃음을 띠었고 두 사람은 서로의 눈을 보며 둘 만의 유대를 굳혔다. 단어가 이렇게 많은 의미를 품을 수 있는 지 몰랐어. ​ 문장이 이렇게 충만한 건지 몰랐어. 아주 좋은 문장이라서 그래. 모든 단어가 그렇게 많은 의미를 품고 있는 건 아니거든. ​ 갈 수 있는 한 멀리까지 가봐. 저 멀리 가재가 노래하는 곳 까지 ​ 우리 두뇌는 아무리 써도 꽉 채울 수 없거든. 우리 인간은 마치 기다란 목이 있으면서도 그걸 안 ..

[swexpert] 1928. Base 64 Decoder (D2, java)

다행이도 자바는 라이브러리를 제공해준다 엔코딩, 디코딩을 처음 해보는 것 같다 import java.util.Base64.Decoder; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); for (int i = 0; i

[swexpert] 1954. 달팽이 숫자 (java, D2)

n이 4이면 4의 제곱인 16까지 증가시키며 써주면 된다. 이동 방향을 보면 x값 증가, y 값 증가, x 값 감소, y값 감소 순으로 이동한다. dr, dc에 위의 순서에 해당하게 써준다. cur는 방향을 바꿀 때마다 1씩 증가한다. cur를 4로 나눠주면 순환되는 이동 방향에 따라 증가 혹은 감소시키는 값이 나오게 된다. 계속 진행하다가 num이 n*n 보다 커지면 끝내준다. import java.util.Scanner; public class Solution { static int dr[]= {1,0,-1,0}; static int dc[]= {0,1,0,-1}; public static void main(String[] args) { Scanner sc=new Scanner(System.in); ..