저 많은 사람 중에 '나'

    백준/JS 2738 행렬 덧셈

    문제 유형 기본문제 배운점 3 3 1 1 1 2 2 2 0 1 0 3 3 3 4 4 4 5 5 100 위 입력을 다음코드로 2차원 배열에 넣을 수 있다. 문제도 문제인데 입출력이 너무 어렵다. var input = fs .readFileSync(BOJkey ? "./자바스크립트로/2738/input.txt" : "./dev/stdin") .toString() .trim() .split("\n") .map((x) => x .trim() .split(" ") .map((x) => +x) ); 기존 코드는 array 에 바로 arr 를 넣어줬는데 문제가 생겼다. 이는 shallow copy가 되어서 3 X 3 배열 이라고 할때 첫번째줄을 수정하면 2번째 3번째 배열 모두 수정이 되는 오류가 발생했다. cons..

    프로그래머스/JS 키패드 누르기

    문제링크 문제 분류 구현 배운점 다음 문제에서 keys 객체의 번호별 [x,y] 를 저장함으로써 2차원 배열을 굳이 선언하지 않아도 되었다. const keys = { 1: [0, 0], 2: [0, 1], 3: [0, 2], 4: [1, 0], 5: [1, 1], 6: [1, 2], 7: [2, 0], 8: [2, 1], 9: [2, 2], "*": [3, 0], 0: [3, 1], "#": [3, 2], }; 문제 풀이 const keys = { 1: [0, 0], 2: [0, 1], 3: [0, 2], 4: [1, 0], 5: [1, 1], 6: [1, 2], 7: [2, 0], 8: [2, 1], 9: [2, 2], "*": [3, 0], 0: [3, 1], "#": [3, 2], }; const..

    프로그래머스/JS 소수 만들기

    문제 분류 기본문제? 배운점 key = [1,2,3] 일때 바로 저런식으로 a,b,c 변수에 할당할 수 있었다. for (let [a, b, c] of key) for in 도 될까 해서 테스트 해봤는데 var obj = { a: 1, b: 2, c: 3, }; for (var [prop, value] in obj) { console.log(prop); //a console.log(value); //undefined } 안된다. 다음 처럼 접근을 해야한다. for (var prop in obj) { console.log(prop, obj[prop]); // a 1, b 2, c 3 } 내 풀이 nums = [1, 2, 3, 4]; function combination(arr, selectNum) { le..

    자바스크립트 순열 , 조합 , 중복조합

    코드 출처 순열 function permutation(arr, selectNum) { let result = []; if (selectNum === 1) return arr.map((v) => [v]); arr.forEach((v, idx, arr) => { const fixer = v; const restArr = arr.filter((_, index) => index !== idx); const permuationArr = permutation(restArr, selectNum - 1); const combineFixer = permuationArr.map((v) => [fixer, ...v]); result.push(...combineFixer); }); return result; } 이해가 되긴 ..

    프로그래머스/JS 신고결과받기 (2)

    프로그래머스/JS 신고결과받기 (2)

    2개의 풀이를 봤는데 너무 배울점이 많아서 두개의 글을 쓰게 되었습니다. 배운점 중복 제거 우선은 파이썬으로 코테준비를 할때, set을 사용해서 중복을 제거했는데, 자바스크립트도 동일합니다. // 중복 제거 후, 유저 ID, 유저가 신고한 ID 분리 let reports = [...new Set(report)].map((el) => el.split(" ")); 우선적으로 new Set(배열) 을 통해서 중복을 제거하고, newArr = [...set] 스프레드 연산자를 사용하여 다시 배열로 만들어줍니다. const arr = ['A', 'B', 'C', 'A', 'B']; const set = new Set(arr); const newArr = [...set]; console.log(newArr) Map..

    프로그래머스/JS 신고결과받기 (1)

    배운점 빈 배열 자바스크립트에서 0으로된 빈배열을 생성하기 위해서는 다음 처럼 Array를 생성한다. const answer = new Array(id_list.length); // [ ] 그 다음 fill 메소드를 사용하여 0을 채워주는 것이다. answer.fill(0); //[ 0, 0, 0, 0 ] const 배열 , 객체 나는 const로 선언을 하면 절대 바꿀 수 없다고 생각했다. 그런데 그게 아니였다. const 는 재선언을 할 수 없는 것이다. 배열의 pop push , 객체의 키값 추가 모든 것이 가능했다. 아예 잘 못이해하고 있었다. const report_list = {}; id_list.map((user) => { report_list[user] = []; }); console.lo..

    인스타그램 like animation

    인스타처럼 좋아요 표시를 좀더 인터랙티브하게 만들어주고 싶었다. 출처: https://velog.io/@dosilv/Instagram-Clone-Coding-Westagram-2 우선 해당 유튜브 자료를 참고해서 다음과 같은 기능을 만들 수 있었다. 근데 내가 원한 것이 아니였다. 그래서 다음 자료를 보고 공부를 해서 조금 수정했다. 참고자료 https://www.youtube.com/watch?v=BxTSljdJnHQ&t=12s https://www.youtube.com/watch?v=YszONjKpgg4

    백준/JS 10828

    https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 배운점 배열에 값을 추가하는 함수 push : 배열의 맨 뒤의 값을 추가 unshift : 배열의 맨 앞에 값을 추가 배열의 값을 제거하는 함수 pop : 배열의 맨 끝에 값을 제거한다. shift : 배열의 맨 앞의 값을 제거한다. console.log()을 여러번 호출하는 것은 시간 초과의 원인이 된다. 또한 기존에는 forEach 문을 사용했는데 이 또한 시간초과가 났다. ..

    백준/JS 10926

    https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 배운점 백준 입출력에 간혹 ('\n') 개행이 맨뒤에 있는 경우가 있으므로 trim() 메소드를 사용하여 없애주자. const fs = require("fs"); BOJkey = true; if (BOJkey) { var input = fs .readFileSync("./자바스크립트로/10926/input.txt") .toString() .trim(); } else { var input = fs...

    백준/JS 1000

    백준/JS 1000

    https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬으로만 문제를 풀었었는데 이번에 자바스크립트를 사용해서 문제를 풀어보려고 한다. 최근에 리액트를 다루어서 자바스크립트를 많이 사용하는데 알고리즘 공부가 좀 더 나에게 와닿기를 바란다. 특이한 자바스크립트의 입출력 기존에 파이썬 이나 c++ 과 달리 자바스크립트의 입출력은 특이한 것 같다. 우선 fs 모듈을 사용하여야한다. npm i fs 그리고 txt 파일을 하나 만들어서 다음과 같이 문제에서 제시하는 입력을 넣는다. 그리고 다음과 같이 코드를 작성한다. 4번째줄에 map 함수를 사용하는 이유는 string -..