본문 바로가기

전체 글77

99클럽 코테 스터디 10일차 TIL - 평행선(백준 2358 / JavaScript) 문제 출처 ⭐ intro : 문제를 생각해나간 방식⭐ 풀이과정⭐ 제출답안const fs = require('fs');const input = fs.readFileSync(0, 'utf-8').toString().trim().split('\n');const n = parseInt(input[0]);const points = input.slice(1).map(line => { const [x, y] = line.split(' ').map(Number); return [x, y];});function solution(n, points) { const xMap = new Map(); const yMap = new Map(); for (const [x, y] of points) { .. 2025. 4. 14.
99클럽 코테 스터디 9일차 TIL - Design HashMap (리트코드 706 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식⭐ 풀이과정⭐ 제출답안class MyHashMap { constructor() { this.map = []; this.index = 0; } put(key, value) { for (let pair of this.map) { if (pair[0] === key) { pair[1] = value return } } this.map.push([key,value]) } get(key) { for (let pair of this.map) { if (pair[0] === key) return pair[1]; } return -1; .. 2025. 4. 11.
99클럽 코테 스터디 8일차 TIL - Check if Number Has Equal Digit Count and Digit Value (리트코드 2283 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식⭐ 풀이과정⭐ 제출답안var digitCount = function(num) { const result = []; let booleanValue = 0; for (let i in num) { let value = 0; for (let j in num) { if (i === num[j]) { value++; } } result.push(value); result[i] === Number(num[i]) ? null : booleanValue++; } return booleanValue > 0 ? f.. 2025. 4. 10.
99클럽 코테 스터디 7일차 TIL : 좋은 단어 (백준 3986 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 (평석이는 평생 계절학기나 수강해...!!) 이 문제 또한 이해하는데 있어서 오랜 시간이 걸렸다. 일단 단어 위로 아치형 곡선을 그린다는 말에서부터 아니 이거 ui를 구현해야하는 문제인건가 코테를 CSS로도 풀어야 하는건가 구현과제인건가 하는 해괴망측한 생각에서 벗어나지 못하다, 코테에서 이런 단어들은 그대로 구현하는것이 아닌, 비유의 표현이자 일종의 함정카드라는것을 뒤늦게 깨달았었다. 이 문제는 앞서 배웠던, 후입선출 방식의 자료구조인 'stack' 을 활용하여 풀 수 있는 문제였다. 일종의 '뿌요뿌요'의 퍼즐풀이 방식으로 이해했었다. 똑같은 뿌요(같은모양)이 합쳐지면 그대로 사라져버리는, 그런 방식의 퍼즐풀이로서 같은 단어가 쌓이게 되면 연쇄.. 2025. 4. 9.
99클럽 코테 스터디 6일차 TIL - Climbing Stairs (리트코드 70 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식문제를 이해함에 있어서 꽤나 오랜 시간이 걸렸었다. 계단을 오르는 방식을 설명하는데, n개의 계단을 오를 때 필요한 방법의 갯수를 말해야 했다. 조건문을 정리하자면총 계단 수는 1이상 45이하1계단이나 2계단씩밖에 오르지 못하는 조건. 2계단을 오르려면(1번) 1 + 1계단을 오르거나(2번) 2계단을 한꺼번에 오르기3계단을 오르려면(1번) 1 + 1 + 1계단을 오르거나(2번) 2 + 1 계단을 오르거나(3번) 1 + 2 계단을 오르기라서, 각각 n이 2일경우 방법 2가지를 리턴, 3일 경우 3가지를 리턴하고 있었다. 그러나 막상 두가지 테스트 케이스만으로는 도통 문제를 이해할 수가 없어서, 한번 4계단 이후의 경우의 갯수도 한번 적어봤었다.4계단.. 2025. 4. 8.
99클럽 코테 스터디 5일차 TIL - Implement Stack using Queues (리트코드 225 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식이전 문제였던 'Implement Queue using Stack와 상당히 비슷하게 생각하게 되었다. 생각 의외로 큐를 구현했던 방식과 비슷한 방식으로 쉽게 풀어나갈 수 있으리라 생각했고, 예상은 적중했었다. 정말 쉽게 풀게되었다. 이번에도 class 문법으로 구현하는것이 조건이었고, 자료구조 queue와 비슷한 stack 구조를 구현하는것이 목표였다. 큐와는 달리 자료구조 '스택'은 LIFO라는 형태로, Last in First Out, 후입선출이라 부르는 형태로 마지막에 들어온 것이 첫번째로 나가게 된다는 것이다. queue를 설명했을때와 비슷하게 그림으료 표현하면 다음과 같다.큐와는 다르게 마지막 인덱스 값을 잘 구분해서 쌓아두는것이 포인트다.. 2025. 4. 7.
99클럽 코테 스터디 4일차 TIL - Implement Queue using Stacks (리트코드 232 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 처음에 봤을때 이 'leetcode', 리트코드라는 코딩테스트 사이트를 드디어 만져보는구나 싶었다. 회고스터디에서 이 사이트 괜찮다길래 자자한 명성은 얼추 주워들어서 알고있었다. 아니 그런데 모두 영어라서, 갑자기 급 언어이슈가 생길뻔했으나 아니 애초에 영어는... 모든 프로그래밍 언어인데 이건 무슨소리인가 싶기도....하하. 이번 과제는 stack을 이용해서 자료구조인 'queue', 큐를 구현하는 문제였다. length같이 간단한 배열의 길이를 조회하는 메서드 외에는 배열 메서드를 쓰지 않고 구현해보는것이 핵심이다. 그런데...'class' 문법으로 구현하는것이 조건이었다. 내가 자바스크립트를 공부하면서 가장 어려웠던 부분이 2가지가 있었는데.. 2025. 4. 4.
99클럽 코테 스터디 3일차 TIL - !!초콜릿중독주의!! (백준 31458 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식이러저러한 고민과 안푼시간도 있긴 했지만 어언 7시간(....)동안 풀게 되었던 문제. 아니 node로... 자바스크립트로 푼 사람이 너무 없어ㅜㅜ 참고할사람이 없어서 정말 머리빠지게 열심히 공부했던것 같다. 혹시 해당문제 자바스크립트로 찾으시는분 계신다면 이 글이 도움되었으면 함.... 그나마 찾았던... 내기준 유일하게 node로 푸셨던 딱 한분을 발견했었는데, 이분이 matchAll을 이용해서 푸셨더라. matchAll이 어떤 메서드인지 찾아보게 되었고, 어제 풀었던 방식과 유사하게 정규표현식을 이용해서 문제의 해답을 찾아나가게 되었다. 일단 문제에서 주어졌던 조건인 이 부분을 유심히 보았었고, 문제에서 0!, 1!로 시작하는 부분을 먼저 찾.. 2025. 4. 3.
99클럽 코테 스터디 2일차 TIL - 문자열 분석 (백준 10820 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식우선 문제를 이해(라는 이름의 해석)해보려고 읽어 내려갔다. 문장들을 하나씩 순회하면서, 그 문장에 걸리는 요소들 각각이 소문자라면 첫번째 배열값에 1을 더해주고, 차례대로 대문자, 숫자, 공백일 경우 해당 값에 해당되는 위치에 1씩 더해주는 문제. 문제 이해하는데는 무리는 없었다.  ⭐ 풀이과정일단 첫번째 배열값인 This is String 값 하나부터  해쳐나가보기 시작했다. 이 문장에는 소문자가 10개, 대문자가 2개, 숫자는 0개, 공백은 개행문자 제외 2개가 들어가 있다. // input[0] = This is String const result = [0, 0, 0, 0]; for (let i of input[0]) { if (.. 2025. 4. 2.