목록전체 글 (245)
말랑한 하루
[ 개요 ] 풀이시간 : 115분 [ 학습 내용 ] - includes() : 문자열 포함확인. java의 contains를 자꾸 쓰려고한다. 고쳐나갈 것 - Object.keys(object) : key-value로 구성된 Object의 key를 배열로 반환한다. - Object.values(object) : key-value로 구성된 Object의 value를 배열로 반환한다. - Object.entries(object) : object의 key, value쌍 배열을 반환한다. 다음 예제로 활용할 수 있다. - reduce(arr, cur) : 누산기 acc를 지니고 현재값 cur을 순회하여 acc를 반환하는 함수. 활용도가 무궁무진하니 익숙해지기 [ 소스 코드 ] function solution(o..
[ 개요 ] 풀이시간 : 30분 [ 학습 내용 ] - forEach() 많은 풀이에서 map보다 forEach를 활용한 풀이가 많이 보였다. 배열을 순회하는 경우 항상 map을 사용했는데, 1) 배열 순회만이 목적이면 forEach를, 2) 순회 후 새 배열을 얻는 것이 목적이면 map을 사용한다. 각 활용방식에 따라 적절히 이용하자. - 비구조화 할당 객체에 대한 비구조화 할당에 대해서만 인지하고 있었다. const {id, name} = item; 배열에 대한 비구조화 할당 역시 같은 방식으로 활용할 수 있었다. const [id, name] = item.split(" "); 늦게나마 알게되어 다행. [ 소스 코드 ] function solution(record) { var answer = []; v..
[ 학습 내용 ] substr(start, end) : start index 요소부터 end-1 요소까지의 문자열을 반환한다. [ 소스 코드 ] function solution(s) { var answer = s.length; for(var i=1; i
[ 학습 내용 ] - 정규식 : flag - g 전역탐색 - padStart(number, string) : number만큼 string을 문자열 앞에 채움 - toString(index) : index 진법으로 변환 가능 [ 소스 코드 ] function solution(n, arr1, arr2) { var answer = []; for(var i=0; ia.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0| 1/g, a => +a ? " ": "#"); [ 코드 분석 ] - replace : 1) 정규식 내 1|0 으로 중복함수호출 제거 2) a => +a 로 1과 0구분
[ 학습 내용 ] - indexOf() : 원소값이 제일 처음 존재하는 배열의 인덱스 반환, 없는경우 -1 - lastIndexOf() : 원소값이 제일 마지막에 존재하는 배열의 인덱스 반환, 없는경우 -1 현재 스테이지를 기준으로 다음과 같이 준비했다. 1) accum : 누적 플레이어 수 (clear로 갱신) 2) clear : 스테이지를 클리어 한 플레이어 수 (이전 스테이지의 마지막 index 활용, 단 존재하지 않는경우 accum 사용) 3) fail : 스테이지에 도달하였지만 클리어하지 못한 플레이어 수 (현재 스테이지 마지막 index - 처음 index 활용) [ 소스 코드 ] function solution(N, stages) { var answer = []; var failure = [..
[ 학습 내용 ] - 행렬 위치 뒤집기 [ 소스 코드 ] function solution(board, moves) { var answer = 0; var index = {}; for(var i = 0; i { if (index[move - 1] === board.length) return; let item = board[index[move - 1]][move - 1]; index[move - 1] +=..
[ 학습 내용 ] 키패드를 층과 좌, 중, 우로 분할했을 때 해당되는 숫자는 층은 몫으로, 위치는 3n-2, 3n-1, 3n으로 분류할 수 있다. 위 식의 경우 나머지연산을 통해 분류는 가능하나, 우측 몫이 나누어 떨어지는 부분으로 인해 층분류에 알맞지 않았다. 그래서 키패드 전체 수를 1씩 낮춰 2n, 2n+1, 2n+2로 식을 세워 층분류, 좌우분류가 가능하게 만들었다. 전체적인 키패드의 모습은 다음과 같다. [ 소스 코드 ] function solution(numbers, hand) { var answer = ''; let left_hand = 9, right_hand = 11; const onLeft = (number) => { answer += "L"; left_hand = number; } c..
[ 학습 내용 ] 정규표현식 활용 - ReqExp() : ReqExp 객체를 생성합니다. 리터럴 표기법인 경우 두 빗금(//)을 쓰며 따옴표(")를 사용하지 않음 생성자 표기법인 경우 따옴표(")를 쓰며 두 빗금(//)으로 감싸지 않음 - flag : 단독 및 중첩사용이 가능함. d : 부분 문자열 일치에 대해 인덱스를 생성 g : 전역 탐색 i : 대소문자 구분하지 않음 m : 여러줄에 걸쳐 탐색 s : 개행 문자가 . 과 일치함 u : "unicode", 패턴을 유니코드 코드 포인트의 시퀀스로 간주함 y : "접착"탐색, 대상 문자열의 현재 위치에서 탐색을 시작함 [ 소스 코드 ] function solution(s) { var answer = s.toLowerCase(); var number = [..