반응형

프로그래밍 135

[코딩테스트] 스택/큐 - 다리를 지나는 트럭

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대기 트럭이 하나씩 차례차례로 다리를 지나서 전부 다 지나는 시간을 출력하는 문제. 다리의 최대 하중이 weight로 주어지고, 1초에 길이 1씩 트럭이 전진한다고 가정하고 풀어야 한다. 이렇게 되면 마지막 트럭이 다리 위에 올라서도 그 트럭이 완전히 지나갈 때까지 시간을 세야 한다. 전략 01. 큐 다리를 길이가 제한된 큐라고 생각하면 1초씩 트럭이 전진하다가 해당 길이만큼 이동하면 자동적..

[코딩테스트] 깊이/너비 우선 탐색(DFS/BFS) - 게임 맵 최단거리

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최단거리 문제. 이 문제는 대표적인 BFS문제다. 캐릭터는 상하좌우 움직일 수 있으므로 이걸 중점적으로 생각해서 풀어야 한다. 전략 01. BFS 일반적인 BFS로 풀되 각 노드에서 상하좌우로 움직일 때 움직인 노드가 범위를 벗어나거나, 벽인 경우, 그리고 되돌아가는 경우를 제외해야 한다. 풀이 from collections import deque def solution(maps): n, m ..

[코딩테스트] 동적계획법(Dynamic Programming) - 등굣길

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 길 찾기 경우의 수 문제. 중간에 가지 못하는 길이 있을 경우 어떻게 처리해야 하는지가 중요하다. 문제에서 그림을 잘못 그렸음. m x n 크기라고 해놓고 n x m 그림을 그렸음. 전략 01. 수학적인 풀이 입출력 예제에서 가로로 두번, 세로로 세번 건너는 모든 경우의 수를 센 뒤 웅덩이를 지나는 경우의 수를 빼면 되므로 [가로, 가로, 세로, 세로, 세로]의 경우의 수를 구해주면 된다. ..

[Overview] 03. Operating Systems - (2) Kernel and Virtual Machine

01. 커널 (Kernel) 02. 가상 머신 (Virtual Machine) 운영체제(Operating System)가 제공하는 서비스에는 크게 커널(Kernel)과 사용자 인터페이스(User Interface; UI)가 있다. 그 중에서도 특히 커널은 운영체제의 핵심 서비스를 담당하며, 사용자 인터페이스는 윈도우의 바탕화면 같이 사용자가 컴퓨터와 상호작용할 수 있는 통로다. 커널에 대한 설명은 잠시 미뤄두고, 사용자 인터페이스의 종류는 그래픽 유저 인터페이스(Graphic User Interface; GUI)와 커맨드 라인 인터페이스(Command Line Interface; CLI)가 있다. 전자는 앞서 말한 윈도우의 바탕화면처럼 그래픽을 기반으로 컴퓨터와 작용할 수 있는 인터페이스이며, 후자는 명..

[코딩테스트] 깊이/너비 우선 탐색(DFS/BFS) - 타겟 넘버

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 numbers를 차례로 더하거나 빼서 target이 되는 방법의 수를 구하는 문제 제한사항이 타이트하지 않아서 다양한 풀이가 가능하다. 전략 01. BFS 가장 처음 생각난 건 BFS다. queue에 (값, 순서)를 넣고 차례차례 꺼내서 더하고 빼준 뒤 다시 queue에 넣어준다. 마지막 순서까지 끝났다면 target값과 같은지 체크하는 방법이다. 풀이 from collections ..

[코딩테스트] 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 리스트를 순회하면서 그 앞의 가격들이 현재 순회중인 값보다 클 경..

반응형