일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- html/css/js
- 알고리즘
- 국비지원
- 호이스팅
- 백준
- Javascript
- 컴퓨터과학
- cpu
- github
- 그리디
- nodejs
- git
- 코테
- LinkSnap
- 너비우선탐색
- 코딩테스트
- 자바스크립트
- KAKAO
- js
- 국비지원취업
- 패스트캠퍼스
- 야놀자
- 컴퓨터공학
- DFS
- CSS
- computerscience
- 부트캠프
- BFS
- 프론트엔드개발자
- Today
- Total
목록전체 글 (326)
My Boundary As Much As I Experienced
연결 리스트란? 배열과 다르게 Node와 Node의 연결을 이용해서 리스트를 만드는 자료구조. 자바스크립트에 익숙한 사람은 원래 배열이라는 자료형에 갯수 제한 없이 원하는 만큼 다 집어넣을 수 있는 줄 아는데 (그것도 자료형에도 구애받지 않고 넣을 수 있는 줄 안다.. 자료형도 정해야 한다. 기본이 any[]가 아니다.) 원래 배열은 몇 개까지 수납할지 선언할 때 그 갯수를 한정해야 한다. 이러한 배열의 단점을 보안하기 위해 추가나 삭제가 자유로운 리스트를 만들고 싶은 니즈가 있었는데 이를 구현한게 연결 리스트이다. 기본 구조 기본적으로 HEAD와 TAIL 등의 순서가 존재한다. Node라는 유닛으로 구성되어 있고, Node는 실제 데이터 값와 다음 데이터의 참조를 가지고 있다. 아래는 삭제 시의 모습이..
일단 긴 얘기부터 해보겠다. 수학공부를 하고싶게 된 이유에 대한 얘기다. 코테를 풀다보면 수학적인 개념이 나올 때가 종종 있다. 어제는 어린 왕자라는 문제를 풀었는데, '이게 실버3이야?' 할 정도로 고난이도의 문제로 느껴졌다. '최소 골드 하위 문제 같은데..'라는 생각이 들었다. 문제를 보자면, - 어린 왕자의 위치와 장미의 위치, 그리고 행성계의 좌표가 주어진다. - 위 사진에서 자유곡선의 왼쪽 끝이 어린왕자의 위치고 오른쪽 끝이 장미이다. - 위 사진에서 동심원들로 표시된게 행성계이다. - 행성계는 중첩되어 있을 수 있다. 그러나 애매하게 일부 교집합이 있는채로 있다거나 하진 않는다. 이때, '어린왕자가 장미를 만나러 가려면 얼마나 많은 행성계를 가로질러야하는가?' 가 문제였다. 좌표는 -1000..
https://www.acmicpc.net/problem/17249 문제 수준: 브론즈2 문제 요약: 마구 주먹을 날리는 이모티콘의 '왼쪽 주먹의 잔상 수', '오른쪽 주먹의 잔상 수'를 찍어라. 주먹은 참고로 @이다. 얼굴 '(^0^)' 기준으로 왼쪽에 있는 건 왼쪽 주먹, 오른쪽에 있는 건 오른쪽 주먹이다. 입출력 예 (입력 / 출력): 문제 풀이 전략: 1분 안에 풀리는 문제를 풀고 싶어서 푼 문제.. 이걸 푸는 여러 방법이 있겠지만, 나는 split()메소드를 적극 활용했다. 문자열 없애는 가장 좋은 방법 중 하나가 split()과 join()의 체이닝이므로.. 내 풀이: // 17219 비밀번호 찾기 let fs = require("fs"); let input = fs.readFileSync("..
https://www.acmicpc.net/problem/17294 문제 수준: 브론즈1 문제 요약: 욱제쨩은 카와이한 수가 좋다능.. SSS급 카와이한 수는 각 자릿수가 등차수열을 이루는 수라능. (ex: 13579) 이때 공차는 0이 될수도 있다능 (ex: 111111) 당신은 욱제한테 귀여운 수~ε٩(๑> ₃ +x); // ex: [1,3,5] let diff; let flag = true; // flag가 true로 유지되면 귀여운 수로 친다. for (let i = 0; i < input.length; i++) { if (input.length
(링크) https://www.acmicpc.net/problem/1652 문제 수준: 실버5 문제 요약: 영식이가 여행와서 코레스코 콘도?라는데서 잔댄다. 방은 N x N 크기의 방이다. 옮길 수 없는 짐도 있다고 한다. 영식이가 누우려면 최소 2칸 이상 이어져 있는 공간이 필요하다. '이때 영식이가 무조건 몸을 쭉 피기 때문에 머리와 발은 무조건 벽이나 짐에 닿는다. 중간에 어정쩡하게 자지않는다'...라는 조건이 있는데 사실 뭔 말인지 헷갈렸다. 이 말은, '5칸 연속 빈 공간이 있을 때, 최소 2칸 필요하다고 해서 5칸을 2칸씩 다 쪼개보면 4가지의 경우가 있네?' 라고 하지 않는다는 것이다. 5칸 연속 빈 공간은 그냥 1개의 경우로 보는 것이다. 이때 가로로 잘 수 있는 경우와 세로로 잘 수 있는..
자바스크립트의 Set 자료구조는 한 마디로 '중복을 허용하지 않는 배열'이다. Set 객체는 배열과 유사하지만 다음과 같은 차이가 있다. 구분 배열 Set 객체 동일 값 중복 가능하다. 불가능하다. 요소 순서에 의미가 있다. (index) 있다. 없다. 인덱스로 요소에 접근 가능하다. 가능하다. 불가능하다. 아래는 Set 객체의 기본적인 사용법(생성, 추가, 삭제, 특정 인자 존재 여부 체크, 사이즈 체크 방법)들이다. Set 객체의 생성 아래와 같이 생성자의 인자로 아무 것도 넘기지 않으면 빈 세트가 만들어진다. const set = new Set(); // Set(0) {size: 0} 또한 아래와 같이 배열을 인수로 넘기면 배열에 담긴 값으로 세트가 만들어진다. const numSet = new S..
https://www.acmicpc.net/problem/20529 문제 수준: 실버1 문제 요약: 수많은 학생 중에 딱 3명을 뽑았을 때, mbti 알파벳의 차이가 가장 적은 조합이 어떻게 되는지를 판단하는 문제이다. 예를 들어, INFP 학생과 INFP 학생은 완전 똑같으니 차이가 0이다. INFP 학생과 INTP 학생은 알파벳 하나가 다르니 차이는 1이다. 이를 세 학생의 심리적 거리로 나타내면 라고 할 수 있단다. N명 (N >= 3)의 학생 중에서 가장 적은 차이를 보이는 엠비티아이 조합을 구하면 된다. 입출력 예 (입력 / 출력): 문제 풀이 아이디어: 그런데 조금 생각해보면 알 수 있는 사실이 있다. (E / I), (N / S), (F / T), (P / J) 모두 알파벳은 두 개 뿐이므로..
MSW란?Mock Service Worker의 준말이다.이때 Service Worker는 앱의 백그라운드에서 실행되는 브라우저가 제공하는 기능이다.브라우저와 앱의 중간에서 이벤트를 listening하고 있는 존재라고 보면 된다.(PWA나 Firebase Cloud Message같은 기능들을 구현해보려고 했던 개발자들은 사용해본 경험이 있을 것이다.) Mock이란 단어에서 알 수 있듯이, MSW는 브라우저의 백그라운드에서 비동기 api통신 호출을 가로채서 가짜 응답을 해주는 Proxy의 역할을 한다. 왜 필요한가? 백엔드에서 API를 아직 주지 않았을 때, api 명세서대로 객체를 생성하여일단 호출 받았다 치고 화면 구현해본 경험이 다들 있을 것이다.그러나 이런 방식으로 모사하는건 마크업을 확인하는 용도로..
앞서 node.js의 기본 모듈들을 학습한 후, 이번 시간엔 본격적으로 http모듈만을 이용한 서버 만들기를 진행해봤다. 제공된 코드만 읽지말고 꼭 개량해보고 기능 추가해보라는 제로초 선생님의 말씀대로 한 번 기능들을 추가해봤다. 추가한 기능: 모두 삭제하기 기능 (유저등록/코멘트) 토끼로 만들기 기능 (유저등록/코멘트) 코멘트 란 읽기/추가/삭제/수정 node 서버를 처음 만들어본 느낌은 '뭐야 이거 자바스크립트잖아?' 이다. (당연한 얘기지만😂) 프론트에서도 서버가 깔끔하게 정제된 정보를 주지않고 날것의 것을 주면 손수 데이터를 가공해서 쓰는데, 노드 서버가 하는 일도 별반 다르지 않다는 것을 알 수 있었다. '프론트에서 받은 요청과 request body에 따라 내 저장소에 있는 내용을 편집하고 그..
요새 프론트 취준 경쟁이 아주 맹렬해져 그 수준들이 계속 올라가고 있다고 한다. 예전엔 리액트에 손이 어느정도 익고, 최적화hook을 잘 사용한다던가 정도 했으면 신입 기준에 부합했는데 현재는 리액트, 넥스트, 각종 전역상태관리, 리액트쿼리까지는 다들 기술 스택에 넣고 있는 분위기다.. 야놀자 부트캠프 다닐 때도 거의 파이널 프로젝트까지 가니까 다들 msw까지도 활용하는 분위기이기도 했다. 물론 기술 스택을 무조건 올리는게 능사는 아니다. 프로젝트를 만들 때 어떤 고민을 했고, 어떻게 구현했는지를 어필하는 것이 제일 중요하다는 것은 틀림없긴 하다고는 한다. 나도 이 편이 같이 일하는 사람으로 뽑고 싶을거 같긴하나, 수많은 비슷한 경쟁자들이 있는 것보다 차별적인 기술을 알고 있어서 뾰족한 쓰임새가 있는 인..