반응형

분류 전체보기 141

[코딩테스트] 2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주차장의 요금표와 차량 입출차 기록이 주어졌을 때 차량 별로 주차 요금을 계산하는 문제 기본 요금이 주어지고 기본 요금을 초과했을 경우에는 각 케이스의 fees에 따라 요금을 계산해야 된다. 차량은 여러번 입출차할 수 있으나 마지막 출차 기록이 없을 경우 23:59에 출차한 것으로 간주함. 전략 01. datetime, dict 시간 계산은 datetime으로 하면 될 것 같고 입차한 차량의..

[코딩테스트] 2019 KAKAO BLIND RECRUITMENT - 실패율

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오천성 게임의 각 스테이지 난이도를 조절하기 위해 플레이어들의 진행상황으로부터 실패율을 구하는 문제 N개의 스테이지가 있고 각 유저의 진행도를 나타내는 stages가 있을 때 스테이지를 실패율이 높은 순으로 정렬하기 전략 01. groupby 각 플레이어의 진행도를 정렬하고 itertools 라이브러리의 groupby를 이용해 진행한 스테이지 별로 묶은 뒤, 각각의 개수를 세면 전체 플레이어..

[코딩테스트] 2018 KAKAO BLIND RECRUITMENT - 캐시

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DB캐시를 적용해 성능 개선하는 문제 miss시에는 실행시간 5초, hit시에 실행시간이 1초일 때 LRU 알고리즘을 이용해 주어진 캐시크기로 캐싱하면 주어진 데이터들의 실행시간은? 전략 01. deque 처음 문제를 읽고 나서 collections 라이브러리의 deque를 떠올렸다. deque에서 요소가 가득 차 있을 경우 가장 오래된 요소부터 축출되는 LRU(Least Recently U..

[프로젝트] 08. 한글 학습 퀴즈 서비스 - 한 (Part 1. 퀴즈)

🎈매일 쉽고 재밌게 퀴즈를 풀며 한국어를 학습하는 서비스. 프로젝트 정보 프로젝트: 한글 학습 퀴즈 서비스 - 한 (내일배움캠프 최종 프로젝트) 개발기간: 2023.06.05 - 2023.07.10 ( 35일 ) 주요 기능: 소셜로그인, 실시간 배틀 기능, 십자말퍼즐 역할 부리더 실시간 배틀 및 배틀 로비 기능 개발 4종 퍼즐 개발 전반적인 프론트엔드 개발 깃허브 관리 담당자 기술스택: BE 프로그래밍 언어: Python 3.8.6 BE 웹개발 프레임워크: Django 4.2 FE 프로그래밍 언어: JavaScript 의존성 관리(Dependency Manager): poetry 1.4.2 데이터베이스(Database): PostgreSQL 라이브러리 Django REST framework - 3.14...

[Overview] 02. Data Manipulation - (1) Computer Architecture and Machine Language

01. CPU 기초 (CPU Basics) 02. 기계어 (Machine Language) RISC (Reduced Instruction Set Computer) VS. CISC (Complex Instruction Set Computer) 명령의 종류 (Type of Instructions) 1장에서는 주저장장치인 메모리에 데이터를 어떻게 저장하는지에 대해 공부했다면 2장에서는 저장된 데이터를 컴퓨터가 어떻게 조작하는지에 대해서 공부할 것이다. 데이터 조작을 제어하는 컴퓨터 안의 회로는 중앙처리장치(Central Processing Unit, CPU) 혹은 프로세서(Processor)라고 불린다. 초기의 ENIAC과 같은 컴퓨터에서 CPU는 선반 여러 개에 나누어진 큰 장치였으나 현대로 오면서 CPU의..

[Overview] 01. Data Storage - (4) Data Compression

01. 일반적인 데이터 압축 기법 (Generic Data Compression Techniques) RLE(Run Length Encoding) 빈도 종속 인코딩(Frequency-dependent Encoding) 차등 인코딩(Differential Encoding) 사전 기반 인코딩(Dictionary Encoding) LZW 압축 알고리즘(Lempel-Ziv-Welsh Compression Algorithm) 데이터의 저장이나 전송을 위해 원래 정보를 유지하면서 데이터의 크기를 줄이는 것이 필수적이다. 각 분야에 맞게 고안된 압축 기법들이 있다. 01. 일반적인 데이터 압축 기법 (Generic Data Compression Techniques) 데이터 압축 방법은 무손실(lossless) 압축 ..

[Python] 파이썬에서 2의 보수 체계 적용기

01. 문제점 파이썬에서 정수의 저장 02. 해결방법 비트 마스크(Bit Mask) 파이썬 내장 메소드 to_bytes, from_bytes 01. 문제점 컴퓨터 과학 총론을 공부하면서 컴퓨터가 2의 보수 체계를 어떻게 적용하는지 공부했다(여기를 참조) . 이를 파이썬에서 직접 적용시켜 보기로 했는데 난관에 부딪혔다. 파이썬에서 정수를 표현하는 bit 수는 할당된 메모리 크기에 의해 제한되는 것이 아니라 정수의 크기에 따라 유동적으로 변화할 수 있었다. 즉 저장할 메모리의 크기를 직접 할당해 줘야 하는 C언어나 여타 저수준 프로그래밍 언어와 달리, 파이썬에서는 int형를 사용할 때 overflow나 memory leak 같은 memory 관련 문제에 신경 끄고 온전히 프로그래밍에만 집중할 수 있도록 해주..

[Overview] 01. Data Storage - (3) The Binary System

01. 2의 보수 ( Two's Complement ) 02. 소수의 표현 ( Fractions in Binary ) 0과 1로 표현되는 2진법 체계는 컴퓨터에서 보편적으로 사용된다. 2진법의 표기, 덧셈 같은 기초적인 내용은 건너 뛰도록 한다. 01. 2의 보수(Two's Complement) 2의 보수는 컴퓨터가 음수를 저장하기 위해 사용하는 정수 표현 체계 중에 하나이다. 4개의 bit로 구성된 머신이 있다고 하자. 이 머신은 2^4개의 경우의 수를 나타낼 수 있으므로 0 ~ 15 범위의 수를 저장할 수 있다. 하지만 음수를 표현해야 한다면 어떨까? 이를 위해서 범위의 절반을 음수에 할당한다. 그렇게 되면 4bit 머신의 경우 -8 ~ 7까지의 수를 저장할 수 있다. 또한 최상위 비트는 부호를 나타..

[Overview] 01. Data Storage - (2) Main Memory

컴퓨터는 데이터를 저장하기 위해 수많은 비트를 저장할 수 있는 회로들을 가지고 있다. 이 회로 안에 비트를 저장할 수 있고 이 비트 저장소를 컴퓨터의 주기억장치(Main Memory)라고 한다. 01. 메모리의 구성(Memory Organization) 주기억장치는 8bit로 이루어진 셀(cell)이라는 기초 단위들로 구성된다. 8bit로 된 열은 바이트(byte)라고 부르며, 메모리의 한 셀은 보통 1byte의 용량을 갖는다. 가전제품에 내장된 컴퓨터의 메모리는 수백 개의 셀을 갖지만, PC나 스마트폰의 경우 메모리 안에 수십억 개의 셀을 가질 수도 있다.(1billions cell = 약 1GB) 우리는 메모리 셀 안의 비트들이 한 줄로 배열되어 있다고 생각할 수 있는데, 이때 개념적으로 비트의 가장..

[Overview] 01. Data Storage - (1) Bit 그리고 Bit의 저장

어떤 컴퓨터 관련 수업이든 처음은 bit의 이해부터 시작한다. bit(binary digit)는 컴퓨터 안에서 정보를 나타내기 위한 최소 구성 단위로, 0과 1로 이루어져 있다. 여기까지만 들었을 때 '0, 1로 이루어진 숫자구나'라고 생각하기 쉽지만 사실 전류가 끊겼다 이어졌다 하는 전기적인 신호를 우리가 알아보기 쉽게 0과 1로 나타낸 것 뿐이다. 그래서 bit를 0, 1로 나타낸 것과 마찬가지로 False, True로 나타낼 수도 있다. 아무튼 컴퓨터는 비트의 패턴(Patterns of bits)들을 이용해서 정보를 표현한다. 이 비트의 패턴, 즉 정보는 알파벳과 같은 문자를 나타낼 수도 있고 이미지나 소리를 나타낼 수도 있다. 01. 부울 연산(Boolean Operations) 논리(logic)..

반응형