전체 글(31)
-
[힙] 프로그래머스 이중우선순위큐 파이썬 풀이
이중우선순위큐 파이썬 풀이 접근 방법 문제 상에서 operation의 최대값과 최소값을 Delete하는 연산엔 pop과 heappop을 섞어 풀면 되지않을까 싶어서 요구사항대로, 케이스별로 풀었다. 1차 작성 코드 import heapq as hq def solution(op): q = [] for i in op: ins, num = i.strip().split() if ins == 'I': hq.heappush(q, int(num)) elif ins == 'D' and q: if num == '-1': hq.heappop(q) elif num == '1': q.pop() return [max(q), min(q)] if q else [0,0] operation이 op라는 배열로 주어졌을 때, 각 명령어의..
2023.05.09 -
[스택/큐] 프로그래머스 프로세스 파이썬 풀이
프로세스 파이썬 풀이 문제설명 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. 현재 ..
2023.05.09 -
TypeScript - Generic 제네릭
시간 여유가 생겨서 공식 문서와 type-challenges 레포지토리를 통해 타입스크립트를 제대로 짚고 넘어가며 여기에 마저 정리해둬보려 한다. 마침 타입스크립트를 공부하다보면 여기저기, Generics, 제네릭이란 단어가 붙어있지만 제대로 이해하고 넘어가진 않았었다. Generics이란 무엇일까? Generics, 제네릭 제네릭을 보통 의 형태로 객체를 다루는 C++이나 Java등의 프로그래밍 언어 수업에서 본 적 있을 것이다. 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미하며 보통은 제네릭을 통해 클래스나 메소드에서 사용할 내부 데이터 타입을 지정하고, 컴파일 단계에서 type check를 수행한다. 이런 개념이 적용된게 타입스크립트이고 ..
2023.04.14 -
[스택/큐] 프로그래머스 올바른 괄호 - 파이썬
올바른 괄호 파이썬 풀이 문제설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한 사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예제 s answ..
2023.04.14 -
[스택/큐] 프로그래머스 기능개발 - 파이썬
기능개발 파이썬 풀이 문제설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도..
2023.04.14 -
[React] "npm start"오류 options.allowedHosts[0] should be a non-empty string.
Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. - options.allowedHosts[0] should be a non-empty string. 첫 협업 프로젝트를 진행하면서 깃을 통해 프로젝트를 관리하다, 어느 순간부터 프론트엔드 리액트 프로젝트 폴더 경로에서 npm start 명령을 실행했을 경우, 위와 같은 메세지가 뜨기 시작했다. 가상환경을 통해 8000번 포트의 Django 서버를 실행해둔 상태이고, package.json에 "proxy" : "http://localhost:8000" 또한 작성해둔 상태이다.. 원인은 모르겠지만 일단 ..
2022.08.03 -
[백준] 2075번 : N번째 수 파이썬
시간제한 메모리제한 정답 비율 1 초 12 MB 39.455% 문제 N×N의 표에 수 N^2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. 아래와 같이 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다. 12 7 9 15 5 13 8 11 19 6 21 10 26 31 16 48 14 28 35 25 52 20 32 41 49 입력 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. 출력 첫째 줄에 N번째 큰 수를 출력한다. 예제 입력 5 12 7 9 15 5 1..
2022.07.26 -
허프만 알고리즘으로 문자열 압축하기, Huffman Algorithm Encoding
우리는 컴퓨터로 알파벳을 유용하게 표현하기 위해 extended ASCII code 를 이용해 8bit (1byte)에 저장해 사용한다. 예를 들어 문자 'A'는 ASCII code로 '65'이고, binary code로 나타내면 '01000001'이다. 이를 표로 나타낸 이미지를 아래에 가져와보았다. 만약에 우리가 "BCCABBDDAECCBBAEDDCC"라는 20개의 문자를 별도의 압축 과정없이 전 컴퓨터에게 전송한다 생각해보자. 한 문자는 8bit이므로, 이 문자들은 총 160bits를 사용한다. 이 문자중에는 반복해서 등장하는 알파벳이 존재하기 때문에, 반복하는 각각의 문자를 'Encoding'하여 binary code를 압축시키면 8bit전체를 사용할 필요가 없다. 앞 문장에선 5가지의 알파벳이 ..
2022.04.16