2021년 3월 26일 금요일 IT뉴스

1. “혹시 당근이세요?”…’만남의 광장’으로 변신한 중고거래앱

“혹시 당근이세요?”…’만남의 광장’으로 변신한 중고거래앱

중고거래업계 관계자는 “코로나19로 인해 재택근무와 원격수업이 확대되며 기존 거래 규모가 작았던 어린이용품, 장난감, 게임, 실내 인테리어 가구의 상품거래가 크게 증가했다”며 신종 코로나바이러스 감염증(코로나19) 아래 중고거래 플랫폼은 급성장을 이뤄냈다.

당근마켓의 경우 중고거래라는 본역할을 넘어 ‘지역 SNS’의 모습을 보이고 있고, 당근마켓은 GPS를 통해 사용자의 지역을 인증하고 최대 반경 6km 이내에서만 거래할 수 있도록 하고 있으며 다소 불편하게 느껴지는 지역제한이 오히려 강점으로 작용했다.

2. 삼성전자 차세대 D램 개발… 1초에 영화 2편 용량 전송

삼성전자 차세대 D램 개발… 1초에 영화 2편 용량 전송

삼성전자는 업계 최초로 전송 속도를 7200Mbps로 높인 512GB(기가바이트) 용량의 DDR5 메모리 모듈을 개발했다고 25일 밝혔으며, 반도체 슈퍼사이클(가격 상승)과 맞물려 하반기 상용화에 나설 경우 한국 업체들의 독주에 속도가 붙을 것으로 보인다.

더불어 글로벌 CPU(컴퓨터 중앙처리장치) 시장의 강자인 인텔은 이번 DDR5와 호환이 가능한 제품을 하반기에 내놓을 것으로 알려졌으며, 전날 반도체 파운드리(위탁생산) 분야에 진출을 선언하며 삼성 등을 위협하고 나섰지만, 한편에서는 긴밀한 협력관계를 유지하고 있는 것이다.

3. 스타트업에 꽂힌 네이버…이번엔 푸드테크’

스타트업에 꽂힌 네이버…이번엔 푸드테크

2015년 출범한 D2SF는 유망 기술 스타트업을 집중 육성하기 위해 설립됐으며, 창업 초기 기술 스타트업을 발굴해 한 곳당 3억~5억원을 투자한다.

스타트업 투자 확대의 또 다른 목적은 필요한 기술과 인재 확보, 그리고 서비스 개선이며, 네이버는 지난해 컴퓨터 비전 스타트업 비닷두(V.DO)를 인수했고, 2017년 컴퍼니AI도 인수한 사례가 있다.

  • 비닷두는 서울대 석·박사 출신들이 설립한 컴퓨터 비전 분야 AI 스타트업이다. 비닷두 출신은 네이버웹툰의 콘텐츠 경쟁력을 강화하기 위해 여러 웹툰 관련 기술을 고도화하고 있다.
  • 컴퍼니AI 출신 개발자들은 네이버의 AI 플랫폼인 ‘클로바’의 대화형 엔진을 개발하는 데 중요한 역할을 하고 있다.

4. 야놀자, 숙박예약 넘어 ‘여가 플랫폼’ 도약… B2B로 글로벌 공략 [K-유니콘]

야놀자, 숙박예약 넘어 ‘여가 플랫폼’ 도약… B2B로 글로벌 공략 [K-유니콘]

글로벌 여가 플랫폼 기업 야놀자는 국내 기업공개(IPO)는 물론 해외상장도 모색 중이며, 특히 야놀자는 전 세계 170개국에서 운영되는 호텔, 레저시설, 레스토랑 등 2만6000여개 고객사에게 클라우드 기반 호텔관리 시스템(PMS) 등 SaaS(서비스형 소프트웨어)를 제공하며 글로벌 역량을 높이고 있다.

야놀자는 또 올해 완전 통합된 호텔 자동화 솔루션 ‘와이플럭스(Y FLUX)’를 출시한고, 이는 SW를 서버에 직접 설치해 운영하는 기존 온프레미스 방식과 달리 와이플럭스는 호텔의 모든 운영 요소를 클라우드 기반으로 연결해 데이터를 실시간 공유하며, 야놀자 측은 “코로나 펜데믹이 끝나고 다시 여행 수요가 많아지는 시점에 야놀자는 여행의 모든 것을 하나의 플랫폼으로 연결하는 ‘슈퍼앱 전략’으로 해당 수요를 충분히 소화할 수 있다”며 “글로벌 클라우드 기반 PMS 사업자로서도 B2B영역에서 가파른 성장세를 이어갈 것”이라고 강조했다.

  • PMS(Property Management System): 호텔 자산 관리 시스템- 숙박업소 운영 전반에 필요한 객실 판매, 예약, 고객, 재무, 수익률 등을 한 번에 관리

5. 클라우드 속 내 데이터는 안전할까?…”컨피덴셜 컴퓨팅으로 신뢰 확보”

클라우드 속 내 데이터는 안전할까?…”컨피덴셜 컴퓨팅으로 신뢰 확보”

힐러리 헌터(Hillery Hunter) IBM 클라우드 CTO는 컨피덴셜 컴퓨팅을 **”컨피덴셜 컴퓨팅(Confidential Computing)은 클라우드에서 신뢰성을 확보하게 해주는 기술”**이라고 설명하며, “기술적으로 컨피덴셜 컴퓨팅은 누군가 클라우드에서 업무를 하면서도 프라이버시를 지킬 수 있게 하는 것”이라고 말했다.

즉 클라우드 위에서 독립적인 공간을 만든다는 것으로 여러 사람과 같이 클라우드에서 일을 하지만, 개인 또는 팀이 원하는 것에 대해서는 독립된 권한을 가지게 되는 것이고, 클라우드 제공자도 개입할 수 없다.

  • 온프레미스(On-Premiss): 클라우드가 아닌 기업이 직접 데이터 서버를 운영하는 것
[백준] 1021번 회전하는 큐

[백준] 1021번 회전하는 큐

출처: [백준] 1021번 회전하는 큐


문제

지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다.

지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다.

  1. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, …, ak이었던 것이 a2, …, ak와 같이 된다.
  2. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, …, ak가 a2, …, ak, a1이 된다.
  3. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, …, ak가 ak, a1, …, ak-1이 된다.

큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다.) 이때, 그 원소를 주어진 순서대로 뽑아내는데 드는 2번, 3번 연산의 최솟값을 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 순서대로 주어진다. 위치는 1보다 크거나 같고, N보다 작거나 같은 자연수이다.


출력

첫째 줄에 문제의 정답을 출력한다.


예제 입력 1

1
2
10 3
1 2 3

예제 출력 1

1
0

예제 입력 2

1
2
10 3
2 9 5

예제 출력 2

1
8

예제 입력 3

1
2
32 6
27 16 30 11 6 23

예제 출력 3

1
59

예제 입력 4

1
2
10 10
1 6 3 2 7 9 8 4 10 5

예제 출력 4

1
14

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from collections import deque

input = sys.stdin.readline
N, M = map(int, input().split())
pick_list = list(map(int, input().split()))
count = 0

num_list = deque([x for x in range(1, N + 1)])

for i in range(M):
num_len = len(num_list)
num_index = num_list.index(pick_list[i])

if num_index < num_len - num_index: # 왼쪽에 가까우면
while True:
if num_list[0] == pick_list[i]:
num_list.popleft()
break
else:
num_list.rotate(-1)
count += 1
else: # 오른쪽에 가까우면
while True:
if num_list[0] == pick_list[i]:
num_list.popleft()
break
else:
num_list.rotate(1)
count += 1

print(count)

[백준] 5430번 AC

[백준] 5430번 AC

출처: [백준] 5430번 AC


문제

선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.

함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.

함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, “AB”는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, “RDD”는 배열을 뒤집은 다음 처음 두 숫자를 버리는 함수이다.

배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 100이다.

각 테스트 케이스의 첫째 줄에는 수행할 함수 p가 주어진다. p의 길이는 1보다 크거나 같고, 100,000보다 작거나 같다.

다음 줄에는 배열에 들어있는 수의 개수 n이 주어진다. (0 ≤ n ≤ 100,000)

다음 줄에는 [x1,…,xn]과 같은 형태로 배열에 들어있는 수가 주어진다. (1 ≤ xi ≤ 100)

전체 테스트 케이스에 주어지는 p의 길이의 합과 n의 합은 70만을 넘지 않는다.


출력

각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
10
11
12
13
4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]

예제 출력 1

1
2
3
4
[2,1]
error
[1,2,3,5,8]
error

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import sys
from collections import deque

T = int(input())

for _ in range(T):
comm = input()
N = int(sys.stdin.readline())

temp = input()[1:-1]
if ',' not in temp and temp != "":
num_list = deque([int(temp)])
elif temp != "":
num_list = deque(map(int, temp.split(',')))
else:
num_list = deque()

flag = True
cnt = 0 # Reverse의 개수

for i in range(len(comm)):
if comm[i] == "R":
cnt += 1
else:
if len(num_list) == 0:
flag = 0
break

if cnt % 2 == 0:
num_list.popleft()
else:
num_list.pop()

if cnt % 2 == 1:
num_list.reverse()

if flag:
print("[", end="")
for i in range(len(num_list)):
if i == len(num_list) - 1:
print(num_list[i], end="")
else:
print(str(num_list[i]) + ",", end="")
print("]")
else:
print('error')

2021년 3월 25일 목요일 IT뉴스

1. 해커들의 새로운 먹잇감, 당신의 자동차가 위험하다

해커들의 새로운 먹잇감, 당신의 자동차가 위험하다

자동차 업체들은 해커들의 공격을 막기 위해 막대한 돈을 쏟아붓고 있고, 영국 주니퍼리서치에 따르면 자동차 업계가 해킹을 막기 위해 매년 지출하는 비용은 240억달러(약 27조원)에 이르며, 테슬라는 상금을 내걸고, 자사 차량을 해킹하는 대회를 열고 있다.

이런 문제를 해결하기 위해 자동차 업체들은 모바일 앱, 인포테인먼트 시스템, 와이파이 등 외부와 연결돼 있거나 해킹에 노출되기 쉬운 시스템과 자동차의 속도·조향 같은 제어 시스템을 철저히 분리하고 하여 일부가 해킹되더라도 운전자의 목숨을 위협할 수 있는 치명적인 위협은 막겠다는 것이다.

  • 인포테인먼트 시스템: 정보를 뜻하는 information과 즐거움을 뜻하는 Entertainment의 합성어로 차 안에서 경험할 수 있는 정보시스템을 총칭하는 용어이다.

2. 우체국, 내달부터 ‘핀테크형 해외송금’ 서비스

우체국, 내달부터 ‘핀테크형 해외송금’ 서비스

핀테크형 해외송금은 전통적인 스위프트(SWIFT) 방식의 은행권 송금보다 이용이 편리하고 송금속도도 빠른데다 요금도 경제적이어서 최근 급성장하고 있는 서비스이다.

제휴기관으로는 ㈜와이어바알리가 선정됐다. 와이어바알리는 2016년 설립된 핀테크 전문기업이다. 현재까지 누적 송금액 1조원, 가입 고객 32만명을 확보했다.

  • SWIFT (SWIFT)는 국제 형식으로 은행 정보를 송금하고 결제하는 시스템으로 전 세계 1 만 개 이상의 은행과 기업이 가입되어있으며, 회원들은 식별하기 위한 고유 한 SWIFT 코드를 발급받는다.

3. “알리바바 다음은 텐센트” 위뱅크 등 핀테크 사업 ‘먹구름’

“알리바바 다음은 텐센트” 위뱅크 등 핀테크 사업 ‘먹구름’

중국의 반독점 규제 칼날이 이제 중국 인터넷공룡 텐센트를 향하고 있다. 중국 규제당국은 텐센트 산하 모바일메신저 위챗의 이용자 데이터 수집 행위부터 수백개 스타트업에 대한 투자 포트폴리오까지 모두 면밀히 조사하며 텐센트에 대한 관리 감독을 강화하고 있으며, 특히 텐센트의 1200억 달러(약 136조원) 규모 핀테크 사업 앞날에 먹구름이 드리웠다고 블룸버그는 24일(현지시각) 진단했다.

중국 당국은 지난해 말 마윈(馬雲)의 알리바바 그룹을 시작으로 중국 대형 인터넷기업에 대한 유례없는 반독점 규제에 나섰고, 지난해 11월초 앤트그룹 기업공개(IPO)가 불발되었으며, 반독점 규제 우려 속 텐센트 주가는 지난 1월 최고점을 찍은 후 약 20% 빠졌고, 시가총액은 무려 1700억 달러가 증발했다고 블룸버그는 집계했다.

4. “반도체 패권 되찾겠다” 美 IT 공룡들의 역습

“반도체 패권 되찾겠다” 美 IT 공룡들의 역습

세계 최대 반도체 기업 인텔이 반도체 파운드리(위탁 생산) 시장에 22조원을 투자해 반도체 시장의 큰손인 마이크로소프트, 반도체 관련 핵심 특허를 다수 보유한 IBM과 반도체 기술도 공동 개발하기로 했다.

인텔의 도전은 대만 TSMC와 삼성전자 등 아시아 반도체 기업들이 장악하고 있는 파운드리 업계에 거대한 지각변동을 몰고 올 수 있으며 특히 애플은 반도체 공급처 다변화 차원에서라도 인텔을 적극 활용할 가능성이 높으며, 반도체 업계 관계자는 “반도체 산업에서 오랜 노하우를 가진 인텔이 작심하고 투자하면 1~2년 내에 삼성과 TSMC의 공정 기술을 따라잡을 것”이라고 말했다.

5. “기술 인재 수시로 뽑는다”…통신업계 ‘탈통신’ 흐름, 인재 확보 경쟁으로 번져

“기술 인재 수시로 뽑는다”…통신업계 ‘탈통신’ 흐름, 인재 확보 경쟁으로 번져

통신업계가 기술인재 확보에 적극 나서는 배경으로는 클라우드, 빅데이터, 미디어·콘텐츠 플랫폼 사업 등 신사업 확장이라는 내부 요인 외에 최근 포털, 게임 등 IT 기업의 개발자 쓸어가기라는 외부요인도 작용하고 있다.

SK텔레콤은 누구(AI), 가상·증강현실(VR·AR) 등 필요 인력을 충원하기 위한 채용을 진행 중이며, KT는 소프트웨어개발, IT 설계, IT 보안 분야의 인공지능(AI)·빅데이터·클라우드 등 인력 확보에 집중하고 있다.

2021년 3월 24일 수요일 IT뉴스

1. 1세대 IT기업 한글과컴퓨터에 노동조합 설립

[1세대 IT기업 한글과컴퓨터에 노동조합 설립](1세대 IT기업 한글과컴퓨터에 노동조합 설립 : 네이버 뉴스 (naver.com))

전국화학섬유식품산업노동조합 한글과컴퓨터지회(지회장 김기홍)는 3월 23일 노조 출범 선언문을 통해 한글과컴퓨터노동조합 ‘행동주의’의 출범을 공식화했다.

한글과컴퓨터지회는 “최근 수년간 업무 문화와 노동환경이 퇴보해왔다”며 설립 이유를 설명했으며, 구체적으로 “매년 불가능에 가까운 일정에 따라야 했고, 포괄임금제라는 미명 하에 대가 없는 야간 근로를 강요받아야 했으며, 충분한 보상 없는 주말 근무로 한 주를 마무리해야만 했다”고 지적했다. 거기에 반해 “구성원들의 이 모든 노력은 개개인에 대한 정당한 보상이 아니라, 극소수를 위한 돈잔치로 돌아왔다”고 비판했다.

2. 네이버, ‘지속가능채권’ 발행…”ESG경영 가속화”

네이버, ‘지속가능채권’ 발행…”ESG경영 가속화”

네이버가 5억 달러(약 5643억원) 규모의 5년 만기 ‘지속가능 채권’(Sustainability Bond)을 연간 1.5% 금리로 발행했고,또 전세계 인터넷·IT 기업 가운데 데뷔 채권을 환경·사회·지배구조(ESG) 채권으로 발행하는 것은 최초라고 강조했다.

네이버는 이번 지속가능 채권을 통해 조달한 자금을 친환경 프로젝트와 사회공헌 프로젝트를 중심으로 한 ESG 경영 강화에 주로 활용할 예정이라고 설명했다.

  • ESG 채권은 사회적 책임 투자를 목적으로 발행되는 특수목적 채권이다. ▲친환경 사업 분야에 활용되는 녹색 채권(Green Bond), ▲사회 문제 해결에 사용되는 사회적 채권(Social Bond), 그리고 ▲앞선 두 가지 목적을 결합해 포괄적으로 사용할 수 있는 지속가능 채권(Sustainability Bond) 등으로 구분된다.

3. “디즈니 못 기다리겠다!”…아마존OTT 먼저 한국 상륙 [IT선빵!]

“디즈니 못 기다리겠다!”…아마존OTT 먼저 한국 상륙 [IT선빵!]

디즈니 온라인동영상플랫폼(OTT) 디즈니플러스의 한국 서비스 출시가 늦어지고 있다. 연내 한국 시장 진출을 선언했지만, 첫 협력 사업자 선정을 놓고 고심이 길어지고 있으며, 이에따라 SK텔레콤이 협력을 추진 중인 아마존 OTT ‘아마존프라임’이 디즈니플러스에 앞서 한국에 상륙할 가능성에 힘이 실리고 있다.

아마존프라임 서비스와 SK텔레콤의 요금제를 묶어 판매하는 방안 등이 거론된다. T멤버십, 11번가, 아마존프라임 서비스를 아우르는 구독형 서비스 모델도 구상 중이다.

  • 아마존프라임은 아마존 OTT 서비스로 전 세계 약 1억5000만명의 구독자를 보유하고 있다. 넷플릭스(2억4000만명)보다는 적고 최근 구독자 1억명을 넘어선 디즈니플러스와 비슷한 수준이다.

4. “우린 어벤져스 등 막강 콘텐츠 보유…어린이부터 어른 모두 만족시킬 것”

“우린 어벤져스 등 막강 콘텐츠 보유…어린이부터 어른 모두 만족시킬 것” : 네이버 뉴스 (naver.com)

올 하반기 한국 상륙을 앞두고 있는 디즈니플러스가 한국 오리지널 콘텐츠 투자를 공식화했고, 미국에서 스타워즈 만달로리안을 서비스 론칭에 맞춰 개시했듯, 한국 제작사가 만든 디즈니 오리지널 콘텐츠를 함께 볼 수 있게 될 전망이다.

디즈니의 ‘21세기폭스’ 인수로 디즈니 패밀리가 된 ‘스타’는 타이타닉, 아바타, 킹스맨 등이 ‘스타’ 브랜드 아래 포함돼 ‘마블’, ‘스타워즈’ 등 브랜드와 어깨를 나란히 하고 있으며, 가족 친화적인 전통적인 디즈니 콘셉트 외에 다양한 연령대의 콘텐츠를 포괄하는 점이 특징이다.

5. 구글 OS 오류에도 사과는 없었다…문제 파악 7시간 후에야 ‘늑장 대처’ (종합)

구글 OS 오류에도 사과는 없었다…문제 파악 7시간 후에야 ‘늑장 대처’ (종합) : 네이버 뉴스 (naver.com)

구글의 안드로이드 운영체제를 사용하는 스마트폰에서 정확히 원인을 알 수 없는 애플리케이션(앱) 실행 오류가 발생했지만 회사의 늑장 대응으로 이용자들의 불만이 가중됐다.

이후 구글코리아는 문제를 인지하고 9시간이 지난 시점에 재공지를 통해 ‘웹뷰’와 ‘크롬’ 앱을 업데이트하면 된다는 해결책을 알렸지만 두 번의 공지문에는 모두 이용자 불편에 대한 사과가 빠져 있었고, 오히려 스마트폰 문제라고 착각한 이용자들이 삼성전자 서비스센터에 몰리자 삼성 측은 ‘웹뷰’ 앱을 삭제하면 된다는 임시방편과 함께 “제품 사용에 불편을 드려 죄송하며 빠른 해결을 위해 최선을 다하겠다”고 알렸다.

6. 드디어 움직인 롯데…예상 밖 중고나라 인수

드디어 움직인 롯데…예상 밖 중고나라 인수 : 네이버 뉴스 (naver.com)

그동안 이커머스 시장 확장을 위해 별다른 움직임을 보이지 않았던 롯데그룹이 중고나라를 인수하며 국내 중고품 거래 시장에 진출하기로 결정했다.

롯데쇼핑은 급박하게 돌아가는 이커머스 시장 경쟁에 대응하기 위해 중고나라를 인수한 것으로 분석된다. 국내 중고 시장은 2008년 4조원에 불과했으나 지난해 20조원 규모로 성장했고, 최근 어플 등 온라인 플랫폼을 활용한 중고거래도 늘고 있어 시장 전망도 나쁘지 않다.

  • 중고나라는 네이버 카페로 시작해 현재 국내 최대 중고거래 플랫폼으로 성장한 회사다. 네이버 카페 회원수만 2330만명에 달하는 초대형 플랫폼이다. 중고품 거래 시장에 진출하기 위한 최선의 교두보인 셈이다.

7. KT, 1300만 고객 빅데이터로 콘텐츠 ‘공룡’ 꿈꾼다

KT, 1300만 고객 빅데이터로 콘텐츠 ‘공룡’ 꿈꾼다 : 네이버 뉴스 (naver.com)

KT그룹은 1300만 가입자 기반의 유료방송 서비스에 실시간 채널, OTT, 음원 서비스 등 다양한 미디어 플랫폼을 보유하고 있으며, 여기에 콘텐츠 제작 및 유통 역량과 원천 지식재산(IP) 전문 자회사까지 견고한 포트폴리오를 보유한 대한민국 최대의 종합 미디어 그룹이고 가장 많은 유료방송 가입자를 확보했고 콘텐츠 전문기업 스토리위즈를 설립하고 KTH와 나스미디어의 시너지를 강화 하는 등 개별 그룹사 사업의 내실도 다졌다.

KT가 다각도로 분석해 온 1300만 전체 고객의 미디어 시청 빅데이터도 강력한 무기이고, KT의 미디어 빅데이터는 감독, 작가, 출연진 등의 기본 정보와 KT만이 보유한 장면 분석 정보를 결합한 콘텐츠 데이터에 초 단위의 콘텐츠 시청 집중도와 유지율, 콘텐츠 이용 패턴(실시간 방송 유입 및 이탈, TV UI 이용 로그 등)과 같은 시청 데이터를 더하고 인구통계학적 환경을 반영한 시청자 데이터까지 결합해 구성됐으며, 이는 미디어 업계의 일반적인 실시간 방송 시청률 샘플링 데이터의 약 3000배에 달하는 방대한 규모다.

  • KTH: 1988년 다양한 DB개발과 통신 서비스를 제공하기 위해 설립된 정부재투자기관.
  • 나스미디어: 2000년 3월에 설립되어 디스플레이광고를 중심으로 한 인터넷 및 모바일, IPTV, 디지털옥외광고 매체판매업을 주 사업으로 영위하고 있음.
[백준] 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번째로 인쇄되게 된다.


입력

첫 줄에 테스트케이스의 수가 주어진다. 각 테스트케이스는 두 줄로 이루어져 있다.

테스트케이스의 첫 번째 줄에는 문서의 개수 N(1 ≤ N ≤ 100)과, 몇 번째로 인쇄되었는지 궁금한 문서가 현재 Queue에서 몇 번째에 놓여 있는지를 나타내는 정수 M(0 ≤ M < N)이 주어진다. 이때 맨 왼쪽은 0번째라고 하자. 두 번째 줄에는 N개 문서의 중요도가 차례대로 주어진다. 중요도는 1 이상 9 이하의 정수이고, 중요도가 같은 문서가 여러 개 있을 수도 있다.


출력

각 테스트 케이스에 대해 문서가 몇 번째로 인쇄되는지 출력한다.


예제 입력 1

1
2
3
4
5
6
7
3
1 0
5
4 2
1 2 3 4
6 0
1 1 9 1 1 1

예제 출력 1

1
2
3
1
2
5

힌트


출처


링크


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import sys

input = sys.stdin.readline

T = int(input())

for _ in range(T):
N, M = map(int, input().split())
priority_list = list(map(int, input().split()))
docs_list = list(range(len(priority_list)))
docs_list[M] = 'target'

order = 0

while True:
num = priority_list[0]
if num == max(priority_list):
order += 1

if docs_list[0] == 'target':
print(order)
break
else:
priority_list.pop(0)
docs_list.pop(0)
else:
priority_list.append(priority_list.pop(0))
docs_list.append(docs_list.pop(0))

[백준] 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을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.


출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
15
push_back 1
push_front 2
front
back
size
empty
pop_front
pop_back
pop_front
size
empty
pop_back
push_front 3
empty
front

예제 출력 1

1
2
3
4
5
6
7
8
9
10
11
12
2
1
2
0
2
1
-1
0
1
-1
0
3

예제 입력 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
22
front
back
pop_front
pop_back
push_front 1
front
pop_back
push_back 2
back
pop_front
push_front 10
push_front 333
front
back
pop_back
pop_back
push_back 20
push_back 1234
front
back
pop_back
pop_back

예제 출력 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-1
-1
-1
-1
1
1
2
2
333
10
10
333
20
1234
1234
20

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import sys
from collections import deque

input = sys.stdin.readline

N = int(input())
queue = deque([])

for _ in range(N):
comm = input().split()

if comm[0] == 'push_front':
queue.appendleft(comm[1])
elif comm[0] == 'push_back':
queue.append(comm[1])
elif comm[0] == 'pop_front':
if not queue:
print(-1)
else:
print(queue.popleft())
elif comm[0] == 'pop_back':
if not queue:
print(-1)
else:
print(queue.pop())
elif comm[0] == 'size':
print(len(queue))
elif comm[0] == 'empty':
if not queue:
print(1)
else:
print(0)
elif comm[0] == 'front':
if not queue:
print(-1)
else:
print(queue[0])
elif comm[0] == 'back':
if not queue:
print(-1)
else:
print(queue[-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)

출력

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

예제 입력 1

1
7 3

예제 출력 1

1
<3, 6, 2, 7, 5, 1, 4>

힌트

출처

알고리즘 분류

시간 제한

풀이

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
from collections import deque

N, K = map(int, input().split())
people_deque = deque([i for i in range(1, N + 1)])

print("<", end="")
while people_deque:
for _ in range(K - 1):
people_deque.append(people_deque[0])
people_deque.popleft()
print(people_deque.popleft(), end="")
if people_deque:
print(',', end=" ")
print(">", end="")

[백준] 18258번 큐2

[백준] 18258번 큐2

출처: [백준] 18258번 큐2


문제

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

명령은 총 여섯 가지이다.

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

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.


출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

예제 출력 1

1
2
3
4
5
6
7
8
9
10
11
12
1
2
2
0
1
2
-1
0
1
-1
0
3

힌트


출처


알고리즘 분류


시간 제한

  • Python 3: 3 초
  • PyPy3: 3 초
  • Python 2: 3 초
  • PyPy2: 3 초

풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from collections import deque

input = sys.stdin.readline
N = int(input())
q = deque([])
for _ in range(N):
command = input().split()
if command[0] == 'push':
q.append(command[1])
elif command[0] == 'pop':
if not q:
print(-1)
else:
print(q.popleft())
elif command[0] == 'size':
print(len(q))
elif command[0] == 'empty':
if not q:
print(1)
else:
print(0)
elif command[0] == 'front':
if not q:
print(-1)
else:
print(q[0])
elif command[0] == 'back':
if not q:
print(-1)
else:
print(q[-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)이 주어진다.


출력

첫째 줄에 남게 되는 카드의 번호를 출력한다.


예제 입력 1

1
6

예제 출력 1

1
4

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import sys
from collections import deque

input = sys.stdin.readline

N = int(input())

card_deque = deque([i for i in range(1, N + 1)])

while len(card_deque) > 1:
card_deque.popleft()
card_deque.rotate(-1)

print(card_deque[0])