[TIL #15] 주차 요금 계산
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 또 나온 2022 카카오 블라인드 채용 문제.문제가 꽤 괜찮은 것 같다는 생각이 든다. 주차장 출입 관리를 하는 솔루션을 작성해야 한다.입차한 차량이 또 입차하거나, 출차한 차량이 또 출차하는 예외 상황이 없는 것이 정말 다행이었다. 일단 생각의 흐름은 이렇다.입/출차 시간이 "시:분"의 형태로 주어진다 - 분으로 바꿔서 계산해야 한다.맵을 적극적으로 사용할 수 있을 것 같다 - 차량 번호 별 비용 ..
[TIL #14] k진수에서 소수 개수 구하기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2022년 카카오 블라인드 채용 문제다. 문제를 보고 나서 든 생각은, "아니 이게 뭔 소리야?".하여간 코딩테스트 문제는 까보면 요구사항은 별거 없는데 설명을 장황하게 하는 것 같다. 결국 숫자 ``n``을 ``k``진법 ``kn``으로 바꾸고, 그 수를 10진법 수로 가정한다.``kn``에서 찾을 수 있는 소수의 개수를 리턴하는 문제인 것이다. "오케이... 일단 수를 처음부터 스캔하면서 가야 하니..
[OSI 7계층] 응용 계층
·
Camp/Standard
응용 계층(Application Layer)은 7 계층 모델에서 7번째 계층에 해당하며,TCP/IP 모델에서는 응용 계층이 세션 / 표현계층의 역할까지 포함하게 된다.이는 최상위 계층으로 사용자와 데이터를 주고받는 기능을 제공하게 된다.HTTP나 메일 교환을 생각해 보자. 그게 7 계층에서 제공하는 기는 중 일부이다.  주요 프로토콜1. HTTP/S (HyperText Trasfer Protocol / Secure)어쩌면 가장 많이 들어봤을 프로토콜이기도 하다.웹페이지 주소가 저걸로 시작하기에 일반 사용자와 가장 친숙한 프로토콜이라 볼 수 있겠다. 무상태 프로토콜각 요청과 응답이 독립적으로 처리된다. 상태를 유지하지 않기 때문에 Stateless Protocol이라고 부른다.요청/응답 모델클라이언트가 요..
[TIL #13] 피로도
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 던전이 있고 피로도가 있으면 던파 밖에 없지.이거 문제 좀 재밌게 풀겠구만 싶었다.지금은 최소 피로도는 8과 30밖에 없지만 그러면 문제의 의미가 없으니까...다양한 최소 피로도와 소모 피로도가 문제엔 존재했다. 어쨌든 이 문제에선 모든 루트를 탐색해야 한다.그럼 자연스럽게 가장 먼저 떠올리는 방법은 DFS가 될 것이다.순열로도 불가능하지 않지만 "굳이?"라는 생각이 든다. 풀이는 이렇게 진행될 수 ..
[TIL #12] 의상
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 조합을 구하는 문제.어렵지 않지만 어려운 문제라고 할 수 있을까.정말 쉽게 풀 수 있고, 빙빙 둘러 어렵게 풀 수도 있다.그리고 난 빙빙 둘러 가는 접근을 선택했기 때문에 이 글을 통해 메모하려는 목적도 있다. 일단 이 문제는 조합을 구하는 문제 이긴 하지만,조합 그 자체를 구하는 문제는 아니다.그래서 조합이 총 몇 개인지 넘겨주면 된다.따라서 조합을 구할 필요가 애초에 없었다.하... 근데 조합 문..
[TIL #11] 행렬의 곱셈
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 학교에서 행렬을 배웠던 기억이 난다.그땐 "뭐 이런 게 다 있어. 불편해 죽겠네."라고 생각했었다.그래서 그렇게 깊게 공부하진 못했던 것 같다.이제 와서야 행렬이 대단히 중요한 개념임을 인식은 한다만... 행렬의 덧셈과 뺄셈은 간단했다.그냥 눈에 보이는 대로 계산만 하면 됐다.곱셈은 확실히 귀찮았다.행렬의 사이즈가 커지면 정말 재앙이 따로 없었다.그런 기억을 떠올리며 코드를 써 보자.먼저 일반적인 형..
[TIL #10] n^2 배열 자르기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀다 보니 문제가 재밌었다.처음 봤을 땐, "이게 뭔 소리야?" 싶었지만... 다른 사람들을 보니, 이 이미지에 많이 낚인 것 같았다.`n`이 최대 10^7이었기 때문에 이렇게 풀면 무조건 타임 오버라고 생각했다.그래도 일단 저 대로 풀어봤다.정답이 바로 떠오르지 않았기 때문에... function solution(n, left, right) { let arr = new Array(); f..
[TIL #9] 로그인 / 비로그인 구분
·
Camp/T.I.L.
DB에 있는 캐릭터 정보를 가져와야 하는 API를 작성해야 했다.요구조건은 다음과 같다.조회 시 다음의 정보를 가져와야 한다. - 이름, 체력, 공격력조회하는 캐릭터가 자신의 캐릭터일 경우 돈도 포함해서 조회자신의 캐릭터가 아니거나 비로그인일 경우 돈은 조회하지 않음 인증되지 않은 사용자도 API를 사용할 수 있어야 하기 때문에 고민이 생겼다.기존에 토큰 인증을 위해 사용하던 ``authenticateToken`` 미들웨어를 사용할 수가 없는 상태였다.export const authenticateToken = (req, res, next) => { const authHeader = req.headers["authorization"]; if (!authHeader) return res.status(40..
[TIL #8] H-Index 구하기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 과학자의 생산성과 영향력을 나타내는 지표로 H-Index라는 것을 사용한다고 한다.학부 졸업도 논문 대신 졸업 작품이었고, 당연히 논문을 쓸 만한 적극적인 연구 활동을 해 본 적도 없으니,꽤 생소한 개념이었다. H-Index는 아래와 같은 방법으로 구한다고 한다. "어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고,나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학..
[OSI 7계층] 전송 계층
·
Camp/Standard
전송 계층은 OSI 7 계층에서 4번째 계층에 해당하며,데이터 및 전송의 신뢰성, 흐름 제어, 오류 복구 등을 담당하는 계층이다. 개념전송 계층은 데이터의 신뢰성을 보장하면서, 두 호스트 간의 통신을 논리적으로 연결하는 역할을 한다.이 계층에선 주요 단위인 세그먼트(Segment) 단위로 데이터를 나누어 송수신 및 재조립하게 된다.이 과정에서 데이터의 흐름이 제어하고 오류를 복구하며, 데이터의 순서를 보장한다. 1. 세그멘테이션 (Segmentation)응용계층의 데이터를 세그먼트로 분할2. 오류 제어 (Error Control)통신 중 발생한 오류를 감지하고, 필요시 데이터를 재전송한다.3. 흐름 제어 (Flow Control)송수진자 간의 데이터 흐름을 제어한다.4. 신뢰성 보장데이터를 목적지에 정확..