반응형

분류 전체보기 141

[코딩테스트] 2022 KAKAO BLIND RECRUITMENT- k진수에서 소수 개수 구하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어떤 수 n을 k진수로 변환한 뒤, 0을 제외한 나머지 묶음들 중에 소수의 개수가 몇 개인지 구하는 문제. 전략 01. k진수 변환, 소수 문제를 보고 두 가지 함수가 추가로 필요할 것 같았다. 먼저 임의의 n을 k진수로 변환하는 함수, 그리고 0을 제외하고 유효한 값이 소수인지 아닌지 판별하는 함수. 풀이 import re def custom_digit_change(n, k): r_str ..

[Overview] 03. Operating Systems - (1) The History of Operating Systems

01. 운영체제의 발전 (The History of Operating Systems) 운영체제(Operating System)는 컴퓨터의 전반적인 운영을 제어하는 소프트웨어다. CPU, 메모리, 보조기억장치, 입출력장치와 같은 시스템 자원(resource)를 실행한 프로그램에 적절히 할당하고 제어하는 중요한 역할을 한다. 01. 운영체제의 발전 (The History of Operating Systems) 운영체제는 아주 단순한 프로그램으로 시작했다. 운영체제는 20세기 중반 큰 방만한 초기 컴퓨터를 조작할 때 작업을 단순화시키기 위해 만들어졌다. 당시 컴퓨터는 하나의 프로그램을 실행시키기 위해 천공 카드나 테이프로 컴퓨터에 명령을 입력해야 하는 등 준비 기간이 길었다. 또한 한 가지 작업이 진행중인 동..

[코딩테스트] 2018 KAKAO BLIND RECRUITMENT - [3차] 압축

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LZW 압축을 구현하는 문제 사전에 기본 알파벳을 추가하고 첫 글자부터 시작해서 다음글자를 포함한 단어가 등록되어 있지 않다면 사전에 추가해 반복되는 단어를 확장하는 식으로 압축을 진행한다. 전략 01. 딕셔너리 while문을 이용해 겹치는 단어 중 가장 긴 단어까지 찾아내고 그 단어의 인덱스를 answer에 출력한 뒤, 그 다음 글자가 남아 있다면 그 글자를 포함한 새로운 단어를 사전에 딕..

[코딩테스트] 연습문제 - 숫자 짝꿍

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr X, Y 두 문자열 중 겹치는 숫자로 만들 수 있는 최댓값을 리턴하는 문제. 겹치는 숫자가 없다면 -1을 리턴하고 만약 0이 여러개라면 0 하나만 리턴해야 한다. 정수형이 아니라 문자열인 점, 제한사항으로 X, Y의 길이가 3,000,000까지 증가할 수 있는 점을 고려해야 한다. 전략 01. Counter collections 라이브러리의 Counter를 이용하면 문자열 각각의 개수를 딕..

[코딩테스트] 스택/큐 - 주식가격

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 매초마다 갱신되는 주식 시장에서 매초 가격에 대해 몇 초나 방어했는지를 리턴하는 문제 문제 설명이 조금 이상해서 이해하는데 시간이 좀 걸렸다. 입출력 예에서 3초의 경우, 3에서 4초까지 넘어오는 동안 1초 방어한 것으로 보고 0이 아닌 1를 리턴한다. 따라서 마지막 초는 무조건 0이 된다. 전략 01. 브루트포스 prices 리스트를 순회하면서 그 앞의 가격들이 현재 순회중인 값보다 클 경..

[코딩테스트] 해시 - 전화번호 목록

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr phone_book 전화번호부에 있는 어떤 A라는 번호가 어떤 B라는 번호의 접두어인 경우 False를 리턴, 없는 경우 True를 리턴하는 문제 즉 ["A", "A238712"] 일 경우 False 전략 01. 딕셔너리 문제 제목 자체가 해시를 언급하고 있어서 딕셔너리를 이용해 어떻게 풀 수 있을 지 생각해봤다. 딕셔너리를 하나 만들고 반복문을 돌면서 전화번호부를 검사하는데, 검사가 끝난 ..

[코딩테스트] 힙(Heap) - 더 맵게

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 모든 음식이 어떤 K값 이상의 스코빌 지수를 가질 때까지 가장 낮은 스코빌 지수를 가진 음식 두개를 섞어 새로운 음식을 만드는 문제 파이썬의 힙은 최소 힙이므로 이를 이용하면 된다. 전략 01. 힙 scoville 리스트를 힙 구조로 만든 뒤 최소값을 두개 빼내서 연산하고 다시 push하는 방식으로 하면 될 것 같다. 풀이 import heapq def solution(scoville, K)..

[Overview] 02. Data Manipulation - (2) Program Execution

01. 프로그램의 실행 (Program Execution) 1. 프로그램 로드 2. 인출(Fetch) 3. 해석(Decode) 4. 실행(Execute) CPU의 전체적인 실행과정을 살펴보기 위해서는 레지스터 중 특별한 용도가 지정되어 있는 명령 레지스터(Instruction Register)와 프로그램 카운터(Program Counter)를 살펴봐야 한다. 명령 레지스터는 실행할 명령을 차례대로 저장하는 레지스터이며, 프로그램 카운터는 다음에 실행할 명령의 주소를 가지고 있으며 현재 프로그램이 어디까지 실행됐는지 추적하는 수단으로 사용된다. 01. 프로그램의 실행 (Program Execution) 프로그램의 실행, 즉 CPU의 작업은 기계 주기(machine cycle)이라는 3단계 과정을 반복함으로..

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

최종 프로젝트인 만큼 리뷰할 게 많아 글을 두 개 세 개로 나눴다. 주요 코드 리뷰 04. 웹소켓 서론 이번 프로젝트에서 처음으로 웹소켓을 사용했다. django의 서드파티인 channels를 이용해 웹소켓을 구성할 수 있다는 말을 듣고 공식문서 예제를 따라 채팅 기능을 만들어 놓고 보니 대략적인 감이 왔다. 기존의 stateless한 HTTP통신과는 달리 웹소켓은 handshake를 통해 HTTP로 통신을 개시한 뒤 연결이 유지되는 동안 양방향 통신이 가능하다는 점에서 달랐다. channels에서 웹소켓을 구성하는 Consumer클래스는 크게 connect, receive, disconnect 세 가지 함수로 구성되어 있는데 각각 연결을 개시하고, 클라이언트에서 오는 메세지를 받고, 연결을 종료하는 것..

[코딩테스트] 탐욕법(Greedy) - 단속카메라

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 은근 자주 나오는 문제 유형 1차원의 선 위에 두 점이 주어진 선분이 여러 개 중복되어 있을 때 몇 개의 점을 찍어야 모든 선분을 선택할 수 있는가 전략 01. 각 선분의 끝점을 기준으로 정렬하기 각 선분의 끝점을 기준으로 정렬하고 첫번째 선분의 끝점을 선택하고 나면 그 사이에 몇 개의 선분이 있던지 전부 선택된다. 그렇게 선분을 읽어 나가다가 기존의 점이 포함되지 않는 선분이 있을 경우 그..

반응형