일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 머쓱이
- react 프로젝트 리팩토링
- 백준 node.js
- 개발자 특강
- Vue3
- 모던 자바스크립트 Deep Dive TIL
- Frontend Roadmap
- K_Digital Training
- useRef 지역 변수
- Vue3 Router
- 프로그래머스 K_Digital Training 프론트엔드
- 리팩토링 회고
- 프로그래머스 데브코스 프론트엔드 TIL
- 모던 자바스크립트 TIL
- useEffect return
- 모던 자바스크립트 Deep Dive
- 프로그래머스 데브코스
- 모던 javascript Deep Dive
- 인프런 자바스크립트 알고리즘 문제풀이
- frontend roadmap study
- TypeScript 문법 소개
- 프로그래머스 데브코스 프론트엔드
- 모던 자바스크립트 딥다이브
- 프로그래머스 K_Digital Training
- KDT 프로그래머스 데브코스 프론트엔드
- 투포인터알고리즘 js
- react customHook 예시
- 백준 js
- KDT 프로그래머스
- 우테캠 회고록
- Today
- Total
목록전체 글 (254)
프론트엔드 개발자의 기록 공간
특강 소개에 앞서 간략하게 동아리에 대해 소개를 하고 본론으로 넘어가겠다. 💪 개발 동아리 "InQ" 창립 2021년도에 복학한 후배들과 함께 개발 얘기를 나누던 도중, 교내에 개발 동아리가 없어 동아리를 창립하여 학부생들끼리 학습하고 프로젝트를 같이 하는 환경이 생기면 좋겠다는 얘기를 나누었다. 그리고 며칠뒤 직접 만들어서 활동하자고 의견을 모아 바로 창립을 하게 되었다. 졸업을 앞두고 있어서 직접적인 활동은 하지 못했지만, 대외 개발 동아리 활동, 부트 캠프 활동 경험을 통해 이러한 활동 방식을 모태로 동아리 방향성을 잡았다. 하나의 팀을 꾸려 하나의 프로젝트를 목표로 한 학기를 수행하도록 계획을 했고, 거기에서 나의 역할은 개발 경험이 다소 적은 팀 or 학생들을 도와 방향성을 잡아주는 길라잡이 역..
🚩 1463번_1로 만들기 실버3 📖 문제 설명 : N 개의 줄에 각각 빨강, 초록, 파랑 집이 주어진다. N 번째 선택한 집의 색은 N-1 번째 선택한 집의 색과 같지 않아야 한다. 즉 N 번째 집이 빨간색일 때, N-1, N+1은 빨간색으로 칠할 수 없다. 또한, 각각의 집의 비용이 다르기 때문에 최소한의 비용을 선택하면서 규칙에 어긋나지 않게 선택해야 한다. 💡 모든 경우를 선택해서 마지막에 최솟값을 출력하면 된다. 즉, N 번째 파란색을 선택하는 경우는 N 번째 파란색 집 + N-1 번째 빨간색 집 + N-1 번째 초록색 집의 가격이다. 이 개념을 생각해서 각각의 집을 선택할 때 적용하면 된다. const fs = require('fs') const input = fs.readFileSync('/..
🚩 1463번_1로 만들기 실버3 📖 문제 설명 : 정수 N이 주어졌을 때 주어진 조건에 따라 1로 만든다. 이때 연산을 사용하는 횟수의 최솟값을 구해라. 💡 DP 유형이므로 i번째를 구할 때, i 이전의 값들을 이용해서 해결한다. const fs = require('fs') const input = fs.readFileSync('/dev/stdin').toString().trim() let N = Number(input) let answer = Array.from(Array(N + 1), () => 0) answer[2] = 1 answer[3] = 1 for (let i = 4; i 이전 값의 경우의 수 +1 answer[i] = answer[i - 1] + 1 // 3으로 나누어지는 경우 -> 3으..
🚩 최소직사각형 JS 📖 문제 설명 : 가로, 세로 길이가 적힌 명함들의 정보가 주어질 때, 최소한의 크기로 명함 지갑을 만들려고 할 때, 필요한 가로, 세로 크기를 구해라. 단 명함은 가로로 눕혀 가로 세로를 바꿀 수 있다. 💡 명함을 가로 세로 전환이 가능하므로(눕힐 수 있다) 명함 당 가로를 큰 쪽, 세로를 작을 쪽으로 돌린다. function solution(sizes) { let answer = 1 // 가로의 길이를 제일 긴 변으로 설정 후 회전 for (let i = 0; i < sizes.length; i++) { if (sizes[i][0] < sizes[i][1]) { ;[sizes[i][0], sizes[i][1]] = [sizes[i][1], sizes[i][0]] } } // 가로..
🚩 신고 결과 받기 JS 📖 문제 설명 : 일반 유저가 악성 유저를 신고할 수 있다. 사용자가 지정한 신고 횟수 이상으로 신고를 당한 악성 유저는 차단을 당하고, 차단 당한 사실을 신고한 유저에게 메일로 알려줘야 한다. 프로그래머스 문제 💡 Map, Set 객체를 이용한다. 처음 해결한 코드 function solution(id_list, report, k) { let answer = [] let idMap = new Map() // key : id_list, // value : {reportList : 유저가 신고한 ID 목록, cnt : 자신이 신고 당한 횟수, mail : 메일을 받을 횟수} id_list.forEach((el) => idMap.set(el, { reportList: [], cnt:..
🚩 최대 부분 증가 수열 📖 문제 설명 : N개의 자연수의 수열이 주어질 때, 가장 길게 증가하는 원소의 길이를 찾아라. ex) 2, 7, 5, 8, 6, 4, 7, 12, 3 이면 가장 길게 증가하는 원소들은 2, 5, 6, 7, 12이다. 따라서 길이는 5이다. 💡 i 번째 원소에서 0 ~ i-1 번째 원소를 탐색하면서 자기보다 작은 원소들의 개수를 파악한다. // 최대 부분 증가수열 (DP) function solution(arr, n) { let answer = 0 let dp = Array.from(Array(n), () => 0) dp[0] = 1 for (let i = 1; i = 0; j--) { if (a..
🚩 계단 오르기 📖 문제 설명 : 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 4계단을 오른다면 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2로 총 5가지이다. N 계단일 때 올라갈 수 있는 방법의 수는?? 💡 피보나치 수열을 활용한다. // 계단오르기 DP function solution(n) { let answer = 0 let dp = Array.from(Array(n + 1)).fill(0) dp[1] = 1 // 첫 번째 계단 경우의 수 dp[2] = 2 // 두 번째 계단 경우의 수 for (let i = 3; i