[TIL #22] 실시간으로 달리는 공룡
·
Camp/T.I.L.
크롬 주소창에 ``chrome://dino/``를 입력하여 플레이할 수 있는 플랫포머 공룡 게임이 있다.군대에 있을 때, 종종 하곤 했는데 이렇게 다시 만날 줄이야... ``Socket.io``를 이용해 서버에서 플레이 데이터를 관리하게 하는 게 목표인 프로젝트이다.엎드리기는 없지만, 아이템을 획득해 추가 점수를 얻을 수 있다.이런 데서 오는 난관이 있기 마련.내가 힘들었던 부분은 다음과 같다.  1. 아이템 생성 및 검증기존엔 아이템이 무분별하게 생성됐다.모든 스테이지에서 전체 아이템 중에서 랜덤 하게 선택돼 생성됐다.여기선 스테이지 별로 생성되는 아이템을 차별화하고, 그 생성 간격도 관리해야 했다.이 생성 간격은 클라이언트에서만 관리하는 것이 아니라 서버에서 그 검증 또한 수행해야 한다. 일단 클라이..
컴퓨터에서의 메모리란?
·
Camp/Standard
컴퓨터에서의 메모리(Memory)는 데이터를 저장하기 위한 하드웨어 장치이다.인간도 중요한 행위를 위해 기억이 필요하듯이 컴퓨터도 데이터들을 기억할 필요가 있다. 메모리의 계층 구조메모리는 속도, 용량, 비용 등의 다양한 팩터에 의해 계층적으로 구성되어 있다.빠르고 용량이 크다는 두 마리 토끼를 모두 잡을 수 없기 때문에 특성에 따라 계층으로 구분된 것이다.  1. 레지스터 (Register)CPU 내부에 위치한 가장 빠른 메모리.연산에 직접 사용되는 데이터와 명령어들이 저장된다.용량은 매우 작으나, 속도는 가장 빠르다. 2. 캐시 (Cache)CPU와 주기억장치(보통 RAM) 사이에 위치한 메모리.주기억장치와 레지스터 간의 속도 차이가 매우 크기 때문에, 그 중간의 스펙을 가지는 메모리를 둔 것.L1,..
[TIL #21] 큰 수 만들기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명을 제대로 안 봐서 당했던 문제.가장 큰 수 문제가 떠올라서 날먹 문제라고 생각했다.중요한 건 이 문제에선 수의 순서를 바꾸면 안 된다는 것. 자 그럼 어떻게 해결해야 할까?수의 순서를 바꿀 수 없다 - 달리 말하면 바꿀 필요가 없으니 편하다는 의미기도 하다.순서를 바꿀 수 없으니 그냥 앞에서부터 비교한다``k``개의 숫자를 원본 수에서 제거해야 한다 - 몇 개의 숫자를 제거했는지 카운트하는..
[TIL #20] 쿼드압축 후 개수 세기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 쿼드압축도 몰랐고, 쿼드트리도 처음 봤다.뭔데 이게...일단 문제에 쿼드트리의 위키피디아 링크가 걸려 있으니 그걸 보자. 쿼드트리는 각 내부 노드에 정확히 4개의 자식이 있는 트리 데이터 구조입니다.쿼드트리는 옥트리의 2차원 아날로그이며,2차원 공간을 4개의 사분면 또는 영역으로 재귀적으로 세분화하여 분할하는 데 가장 자주 사용됩니다. 모든 형태의 쿼드트리는 몇 가지 공통된 특징을 공유합니다:공간을 ..
[TIL #19] 다리를 지나는 트럭
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  이 문제를 보고 위의 이미지부터 떠올랐다.열린계라고 생각했을 때, 늘어나는 무게는 없다고 해도 될 정도로 미미하다.하지만 물의 무게는 여전히 크다.이걸 잘 생각하면서 다리를 만들어야 한다.이건 우리가 일상적으로 차량을 통해 이용하는 다리에도 적용되는 개념이다. 이 문제는 그러한 다리의 한계 하중을 초과하지 않고 어떻게 트럭을 다 반대편으로 옮길지 고민하는 문제.모든 트럭을 보내기 위해 최소 몇 사이..
[TIL #18] 2개 이하로 다른 비트
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 비트를 다루는 문제.결국 현대의 컴퓨터는 이진수로 동작하기 때문에,비트 연산에 대해 잘 알아둘 필요가 있다.그만큼 그 성질을 잘 이해하고 사용할 필요가 있다.이번에도 엄청 헤맸다... 일단 이 문제는 정수 ``x``에 대해 해밍거리가 2 이하인 수 중에서 가장 작은 수를 찾는 문제다.즉, 몇 개의 비트가 차이가 나는지 비교해 볼 필요가 있다.C++이라면 ``std::bitset::count`` 같은 ..
[TIL #17] 롤케이크 자르기
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 롤케이크 하면 떠오르는 모 캐릭터가 있지만 여기서 꺼낼 건 아니니 넘어가자... 롤케이크 위에 토핑이 있고, 두 사람이 이를 균등히 나눌 수 있는 경우의 수를 모두 찾는 문제.그 길이는 최대 1백만이고, 개수는 최대 1만이다.아니 뭘 이리 많이 먹어... 길이가 최대 1백만이라 2중 for문은 절대 사용해선 안된다.단일 for문만을 사용하여 문제를 풀어야 하겠다.양 쪽의 경우에 대해서 생각해야 하니..
[KPT 회고] 풋살 온라인 과제에 대한 회고
·
Camp
추석 연휴가 껴 있어 집중이 쉽지 않았던 풋살 온라인 프로젝트가 마무리되었다.캠프에서 처음으로 제대로 이루어지는 팀프로젝트에 "내가 정신을 제대로 차리고 있나" 하는 생각도 들었다.그럼에도 불구하고 최대한 정신을 차리고 내가 뭘 하고 있는지 확실히 인식할 필요가 있다.그런 점을 "Keep", "Problem", "Try"의 3가지로 나누어 정리할 수 있다.  Keep ( 유지해야 할 것 )시간이 지날수록 의사소통의 빈도가 늘어나 공유가 잘 되어 좋았다.질문과 피드백이 잘 이루어졌던 점은 앞으로도 대단히 중요하기 때문에 유지하고 싶다. 처음에 DB 설계나 뼈대 등을 신경 써서 잡아둔 것이 이후의 개발에 도움이 됐다.  Problem ( 문제가 됐던 것 )초반엔 서로 내용을 공유하는 것이 그렇게 활발하지 않..
[TIL #16] 모음사전
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr DFS로 풀면 되는 문제긴 하다.출제도 완전탐색을 통해 푸는 것을 의도했을 것이다. 의도대로 DFS를 통해 작성하면 다음과 같다.function dfs(word, vowels, current, state) { if (state.found) return; // 목표 단어를 찾은 경우 탐색 종료 for (let i = 0; i 단어의 길이가 최대 5이기 때문에 완전탐색임에도 부담이 없다.뭐 이..
[TIL #15] 주차 요금 계산
·
Camp/T.I.L.
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 또 나온 2022 카카오 블라인드 채용 문제.문제가 꽤 괜찮은 것 같다는 생각이 든다. 주차장 출입 관리를 하는 솔루션을 작성해야 한다.입차한 차량이 또 입차하거나, 출차한 차량이 또 출차하는 예외 상황이 없는 것이 정말 다행이었다. 일단 생각의 흐름은 이렇다.입/출차 시간이 "시:분"의 형태로 주어진다 - 분으로 바꿔서 계산해야 한다.맵을 적극적으로 사용할 수 있을 것 같다 - 차량 번호 별 비용 ..