[코딩테스트 문제] 열려 있는 보관함은 몇 개일까? (백준 13909: 창문 닫기)

문제 동일한 풀이의 문제: 백준 13909: 창문 닫기 어느 학교에 1부터 100까지 번호가 붙은 보관함이 한 줄로 늘어서 있다. 최초로 들어온 학생이 1번부터 100번까지 보관함의 문을 모두 열면서 나아갔다. 다음에 두 번째로 들어온 학생이 짝수 번째(=2의 배수 번호)의 보관함 문만 닫으면서 나아갔다. 다음에 세 번째 학생이 들어와 3의 배수 번호의 더보기…

Swift: 우선 순위 큐 Priority Queue (설명 + 구현)

이전 글 Swift: 큐(queue) 구현하기   우선순위 큐 (Priority Queue) 힙 (Heap) 우선순위 큐 구현에서 가장 많이 사용하는 자료구조가 힙(Heap) 구조이므로 먼저 힙에 대해 아는 것이 좋습니다. 힙은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(complete binary tree)를 기본으로 한 자료구조(tree-based structure)입니다. 힙의 속성으로는 A가 B의 부모노드(parent node) 더보기…

Swift: 큐(queue) 구현하기

큐(Queue) 큐(queue)는 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말합니다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념입니다. 프린터의 출력 처리나 운영체제의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용됩니다.   기본 배열을 더보기…

Xcode를 이용해 백준 문제를 Swift 언어로 풀기 및 문제 목록 관리 + 값 입력 받는 방법

소개 https://www.acmicpc.net (백준 온라인 평가)에 나와있는 코딩테스트 문제에서 인풋은 어떻게 처리하며, 또 문제 관리를 Xcode로 하는 방법에 대해 설명합니다.   문제 관리 프로젝트 추가 1) Command Line Tool 프로젝트 생성 Xcode 상단에서 File > New > Project… (단축키 command + shift + N)을 누른 뒤 아래 스크린샷과 같이 macOS > 더보기…

[프로그래머스/레벨1] 최소직사각형 (Swift)

최소직사각형 코딩테스트 연습 – 최소직사각형 (프로그래머스)   문제 요약 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 가장 긴 가로 길이와 세로 길이 더보기…

[프로그래머스/레벨2] 프린터 (자바스크립트)

[프로그래머스/레벨2] 프린터 (자바스크립트)   문제 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 나머지 더보기…

[프로그래머스/레벨2] 기능개발 (자바스크립트, Swift)

[프로그래머스/레벨2] 기능개발 (자바스크립트)   문제 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 더보기…

[프로그래머스/레벨2] 주식가격 (자바스크립트)

[프로그래머스/레벨2] 주식가격 현재 자바스크립트는 풀이 가능 언어에 없습니다. 문제 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.   제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다.   입출력 예 [1, 더보기…

[프로그래머스/레벨2] 다리를 지나는 트럭 (자바스크립트)

[프로그래머스/레벨2] 다리를 지나는 트럭 (자바스크립트) 문제 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 더보기…

[프로그래머스/레벨3] 베스트앨범 (자바스크립트)

[프로그래머스/레벨3] 베스트앨범 (자바스크립트)   문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 더보기…