2차원 배열 board를 탐색하는 문제입니다.board 배열을 게임 화면처럼 N x N 크기의 정사각 격자 형태로 만들어 보면다음과 같은 모양이 됩니다.moves 배열을 통해 board의 각 원소인 배열 중 몇 번째 원소에 접근해야 할 지 알 수 있습니다.moves의
array.sort() 이용sort() 함수를 이용해 두 array를 정렬한 뒤, 순서대로 비교순서가 일치하지 않을 경우, 해당 participant가 completion 명단에 없다는 의미이므로 해당 participant를 return형변환하여 비교하지 않도록 !==
자바스크립트의 Set 객체를 사용한 풀이Set 은 중복된 값을 허용하지 않는 고유한 객체이며, 수정이나 추가 적용될 때마다 === 와 동일한 연산이 이루어집니다.
제한사항 중에서 "여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다." 사항으로 인해,여벌의 체육복을 가져온 학생들의 번호가 담긴
=>와 reduce를 이용
처음 풀이다른 사람 가우스 적용 풀이
정규식 + 체이닝 다른사람 풀이
배열에 주어진 글자들을 넣어주고, 해당 글자와 일치하는 문자를 기준으로 split을 해줍니다. 기준이 된 예를 든 zero는 사라지게 되고, 뜯어진 그 부분의 기준을 해당 값의 인덱스를 기준으로 join을 해주어 원래 있던 zero 자리엔 0이 대신하여 들어가게 됩니다
reduce로 누적 합계를 끝까지 구하긴 하지만예산보다 작은 경우에는 숫자를 카운트(answer++; answer을 1씩 추가)하여누적 함수 몇번째까지 예산안에 들어오는지 확인
자연수가 제곱수라면 그 수의 약수는 홀수개고, 제곱수가 아니라면 약수는 짝수개이다.
3진법 만들고 => 만든 3진법 분할 하고 => 뒤집고 => 다시 합친다 => 합친 값을 parseInt로 받아서 다시 10진법으로 표시
이차원 배열에 실패율, 스테이지 번호를 저장해서 스테이지의 번호를 실패율의 내림차순으로 정렬ex) \[ 0.5, 3 , 0.5, 4 , 0.42857142857142855, 2 , 0.125, 1 , 0, 5 ] => 3, 4, 2, 1, 5
Set 사용다른 풀이
row를 repeat()으로 구현하고, col을 console.log(row)를 반복해서 완성
arr1에 map을 사용하고 , 받아오는 인자 arr에 map을 겹쳐서 사용한다. 두번째 map에서 n의 값에 arr2의 i, j 만큼 반복되는 수를 중첩하여 더해준다. arr에는 arr1의 값이 담기고, i에는 index가 담긴다1,2, 2,3 0, 1 배열과 인덱스
사용한 정규식 규칙 정리/ / 패턴을 쓸공간/g는 모든 문자열에 대해서 적용.. g를 쓰지않으면 한개의 문자에 대해서만 적용이됨\\d는 모든 숫자 0-9와 동일x(?=y) : y에 대한 조건을 허용하는 것을 뒤따라오는 x에만 대응된다. 대응 되면 x의 값을 바
처음 생각x를 ""로 split해서 let arr = \[] 에 담는다 => 그 값을 let add = for문 돌려서 전부 더한다 or reducex를 add값으로 나눈다 => if문으로 true, false 판단해결방법\[]에 담을 필요 없음, 변수 arr에 그냥
처음생각for문 돌려서 answer = 0 에 각 항목을 더해준 뒤 return 할때 arr.length로 나눠준다\-다른사람 풀이reduce를 사용하여 1줄로 코딩
처음생각for문은 500까지, if문은 짝수,홀수 따로 돌릴라고 했음 <- 틀림1이 나오면 break 할라고 했었음해결방안for문은 그대로, if문을 1이 아닐때, 나머지로 만들고1이 아닐때는 3항 연산자로 짝수,홀수 판단후 주어진 계산을 해준다이렇게 해야 1이
처음 풀이최대공약수, 최대공배수 구하는 방법을 검색해봤음...유클리드 호제법 두 자연수 A,B에 대하여 (A > B) A를 B로 나눈 나머지를 R이라고 한다.이때, A와 B의 최대공약수는 B와 R의 최대공약수(GCD)와 같다.최소 공배수LCM = A \* B / GCD
처음 풀이너무 쉬워서 당황했음다른 사람 풀이3항 연산자가 더 짧음
처음 풀이sort, splice, slice, push 여러가지 고민해봄, indexOf
sqrt로 제곱근 값을 구한 뒤 isInteger로 정수 판별 ? +1제곱값 : -1 return
해결 방법toString으로 숫자를 문자열로 변환한 다음 split으로 배열로 만든다. 이후에 sort를 이용해서 정렬을 하고 reverse를 이용해서 뒤집는다. 마지막으로 join("")을 해서 다시 문자열로 만든 다음 Number로 숫자로 변환해서 반환한다
처음 풀이Date를 불러올 방법을 몰라서 검색해봄다른 사람 풀이Date 생성자 함수의 인자로 특정 잘짜를 넣어주면 그 날짜에 대한 정보를 받을 수 있다.ex) new Date(2016,2,3) // Wed Feb 03 2016 00:00:00 GMT+0900 (대한민국
Input을 2진수로 변환하고 왼쪽에 빈 부분은 0으로 채운다.겹쳤을 때 1인 부분은
처음 풀이split을 써서 숫자를 각각 쪼갠 뒤, if문으로 짝수,홀수 판단 후 가운데 글자를 뽑을라고 했었으나 , 가운데 글자 뽑는 방법이 안 떠올라서 검색함, 그리고 spilt할 필요 없음다른 사람 풀이ceil을 이용해서 반올림하고 3항 연산자를 사용, substr
처음 풀이new Set을 이용해서 중복을 제거 하려 했음다른 풀이빈 배열을 만들어주고 반복문 + 조건문을 이용arri 와 arri+1을 비교해서 같으면 그냥 넘어가고 else 이면 빈 배열에 push다른 풀이 2filter 사용
처음 생각if로 arr의 각 값을 divisor로 나눈뒤 Number.isInteger로 확인 => 값이 정수일 경우 answer로 push => for문으로 배열 순차적으로 돌림 \* sort는 anwer에서풀이정수 확인 할 필요 없이 %값이 0 인지만 확인하면 되는
처음 풀이두 값의 크기를 비교 한 뒤 같으면 둘중 하나 return다르면 반복문 돌려서 해결다른 사람 풀이가우스를 사용..
처음 풀이sort를 사용해서 각 단어의 자리수를 비교다른 사람 풀이localeCompare를 사용했다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/lo