[백준] 1966번 프린터 큐

[백준] 1966번 프린터 큐

출처: [백준] 1966번 프린터 큐


문제

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.

  1. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.
  2. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다.

예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다.

여러분이 할 일은, 현재 Queue에 있는 문서의 수와 중요도가 주어졌을 때, 어떤 한 문서가 몇 번째로 인쇄되는지 알아내는 것이다. 예를 들어 위의 예에서 C문서는 1번째로, A문서는 3번째로 인쇄되게 된다.

자세히 보기
[백준] 10866번 덱

[백준] 10866번 덱

출처: [백준] 10866번 덱


문제

정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여덟 가지이다.

  • push_front X: 정수 X를 덱의 앞에 넣는다.
  • push_back X: 정수 X를 덱의 뒤에 넣는다.
  • pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 덱에 들어있는 정수의 개수를 출력한다.
  • empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
  • front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.

자세히 보기
[백준] 11866번 요세푸스 문제0

[백준] 11866번 요세푸스 문제0

출처: [백준] 11866번 요세푸스 문제0

문제

  • 요세푸스 문제는 다음과 같다.

    1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 <3, 6, 2, 7, 5, 1, 4>이다.

    N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

출력

예제와 같이 요세푸스 순열을 출력한다.

자세히 보기
[백준] 18258번 큐2

[백준] 18258번 큐2

출처: [백준] 18258번 큐2


문제

정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여섯 가지이다.

  • push X: 정수 X를 큐에 넣는 연산이다.
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 큐에 들어있는 정수의 개수를 출력한다.
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.

자세히 보기
[백준] 2164번 카드2

[백준] 2164번 카드2

출처: [백준] 2164번 카드2


문제

  • N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.

    이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다.

    예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다.

    N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 정수 N(1 ≤ N ≤ 500,000)이 주어진다.

자세히 보기

2021년 3월 23일 화요일 IT뉴스

1. 미국인들 “다음에도 아이폰 사겠다”…삼성폰은? [IT선빵!]

미국인들 “다음에도 아이폰 사겠다”…삼성폰은? [IT선빵!]

미국 시장에서 애플의 스마트폰 아이폰과 비교해 삼성전자 갤럭시 스마트폰 사용자들의 ‘브랜드 충성도’가 낮은 것으로 나타났고, 갤럭시폰을 사용 중인 전체 응답자의 10명 중 7명만이 다음 스마트폰도 갤럭시폰으로 구입하겠다고 한 반면 아이폰 사용자의 경우엔 10명 중 9명이 다음에도 아이폰을 구입하겠다고 했다.

다만 업계에선 이같은 결과가 비단 삼성전자에만 국한된 것이 아니라 보고 있다. 전반적으로 안드로이드폰 사용자의 브랜드 충성도가 낮아졌단 것이다.

2. 흔들리는 삼성 OLED 아성…아이폰 미니 부진·갤럭시M에는 中 패널

흔들리는 삼성 OLED 아성…아이폰 미니 부진·갤럭시M에는 中 패널

애플 아이폰12 미니의 부진으로 삼성디스플레이의 1월 중소형 유기발광다이오드(OLED) 출하량이 전월보다 9%쯤 줄었고, 삼성전자는 인도 시장용 저가 스마트폰 갤럭시M에 원가절감을 이유로 삼성디스플레이 OLED 패널이 아닌 중국 BOE의 것을 장착할 예정이다.

자세히 보기

2021년 3월 22일 월요일 IT뉴스

1. ‘실탄’ 두둑한데 이베이 인수전서 발뺀 카카오…’요기요’ 가나요

‘실탄’ 두둑한데 이베이 인수전서 발뺀 카카오…’요기요’ 가나요

커머스 업계의 판도를 바꿔놓을 이베이코리아 인수전에서 가장 유력한 후보로 거론된 카카오가 결국 발을 빼면서 또 다른 매물인 배달 플랫폼 ‘요기요’ 인수전에 참전할지 관심이 모아지고 있다.

카카오의 자금력이 충분한 데다, 카카오톡과의 연동을 통해 생활 밀착형 서비스를 중심으로 사업을 확대하고 있는 만큼 필요성만 놓고 보면 충분히 인수를 타진할 수 있다는 평가가 많지만, 요기요 매각에 나선 딜리버리히어로코리아가 1위 배달 플랫폼 ‘배달의 민족’의 새 주인이 된 상황에서 강력한 경쟁자가 될 수 있는 카카오에 매물을 넘기지 않을 것이라는 시각도 많다.

2. [위클리 스마트] 크래프톤 ‘연봉 2천만원 인상’ 그늘엔…’공짜 야근’ 포괄임금제

[위클리 스마트] 크래프톤 ‘연봉 2천만원 인상’ 그늘엔…’공짜 야근’ 포괄임금제

크래프톤은 지난해 1~3분기 누적 매출 1조2천370억원, 영업익 6천813억원을 올렸다. 이는 2019년 같은 기간보다 각각 1.78배, 4.27배로 늘어났으며, 개발자는 2천만원, 비개발자는 1천500만원씩 연봉을 올리는 등 직원 대우에서도 이제 ‘3N’에 버금가는 대형 게임사로 자리 잡았다.

자세히 보기
[백준] 1912번 연속합 with Python

[백준] 1912번 연속합 with Python

출처: [백준] 1912번 연속합


문제

n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.

예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다.


입력

자세히 보기
[백준] 9251번 LCS

[백준] 9251번 LCS

출처: [백준] 9251번 LCS


문제

LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.

예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.


입력

자세히 보기
[백준] 1011번 Fly me to the Alpha Centauri

[백준] 1011번 Fly me to the Alpha Centauri

출처: [백준] 1011번 Fly me to the Alpha Centauri


문제

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다.

그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다. 예를 들어, 이 장치를 처음 작동시킬 경우 -1 , 0 , 1 광년을 이론상 이동할 수 있으나 사실상 음수 혹은 0 거리만큼의 이동은 의미가 없으므로 1 광년을 이동할 수 있으며, 그 다음에는 0 , 1 , 2 광년을 이동할 수 있는 것이다. ( 여기서 다시 2광년을 이동한다면 다음 시기엔 1, 2, 3 광년을 이동할 수 있다. )

img

김우현은 공간이동 장치 작동시의 에너지 소모가 크다는 점을 잘 알고 있기 때문에 x지점에서 y지점을 향해 최소한의 작동 횟수로 이동하려 한다. 하지만 y지점에 도착해서도 공간 이동장치의 안전성을 위하여 y지점에 도착하기 바로 직전의 이동거리는 반드시 1광년으로 하려 한다.

자세히 보기