[백준] 2309번 일곱 난쟁이

[백준] 2309번 일곱 난쟁이

출처: [백준] 2309번 일곱 난쟁이


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 58006 24046 17750 43.684%

문제

왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.

아홉 명의 난쟁이는 모두 자신이 “백설 공주와 일곱 난쟁이”의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.

아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.


입력

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.


출력

일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.


예제 입력 1

1
2
3
4
5
6
7
8
9
20
7
23
19
10
15
25
8
13

예제 출력 1

1
2
3
4
5
6
7
7
8
10
13
19
20
23

출처


알고리즘 분류


소스코드1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
from itertools import combinations

input = sys.stdin.readline

dwarfs = [int(input()) for _ in range(9)]
dwarfs.sort()

nPr = combinations(dwarfs, 7)

temp = []
for case in list(nPr):
if sum(case) == 100:
temp = case
break
for x in temp:
print(x)

소스코드2

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

input = sys.stdin.readline

dwarfs = [int(input()) for _ in range(9)]
dwarfs.sort()

height_sum = sum(dwarfs)
delete_element1 = 0
delete_element2 = 0

for i in range(9):
for j in range(i + 1, 9):
if height_sum - (dwarfs[i] + dwarfs[j]) == 100:
delete_element1 = dwarfs[i]
delete_element2 = dwarfs[j]
break

for dwarf in dwarfs:
if dwarf == delete_element1 or dwarf == delete_element2:
continue
else:
print(dwarf)

2021년 5월 7일 금요일 IT뉴스

1. IBM, 세계 최초 2㎚ 마이크로칩 개발 발표

IBM, 세계 최초 2㎚ 마이크로칩 개발 발표

IBM은 6일 지금까지 개발된 것 중에서 가장 작고 가장 강력한 2㎚ 마이크로칩을 개발했다고 발표했다.

IBM은 6일 2nm의 반도체 칩을 개발했다고 발표했다. [CNN]

IBM의 새로운 칩은 현재 사용되고 있는 7㎚ 칩보다 전력 소비를 75% 정도 줄이면서 성능은 45% 향상시킬 것으로 기대되고 있으며, 2㎚ 칩은 스마트폰 배터리의 사용 시간을 4배 늘릴 수 있고, 노트북 속도도 현저히 빠르게 구현할 것으로 보인다.


2. 장병규 크래프톤 의장, 전 직원에 1000억 규모 주식 무상 증여

장병규 크래프톤 의장, 전 직원에 1000억 규모 주식 무상 증여

크래프톤의 최대 주주인 장병규 이사회 의장이 국내외 전 구성원 및 입사 예정자들에게 사재 주식을 무상 증여한다.

그는 우리사주조합 제도를 실시하지만, 법/제도상으로 국내에만 적용되고 해외법인 구성원들이 해당되지 않는 점 등 모두 함께 나눌 수 있는 특별한 방법을 찾아야만 했고, 글로벌 전체 구성원에게 감사한 마음을 나눌 수 있는 방법으로 사재 주식의 증여를 결심했다고 언급했다.

  • 기업의 종업원이 자기 회사의 주식을 취득, 관리하기 위하여 조직한 조합.

3. “송가인 노래가 한가득!”…‘트로트 스마트폰’ 출시

“송가인 노래가 한가득!”…‘트로트 스마트폰’ 출시

SK텔레콤은 KBS의 인기프로그램 ‘트롯전국체전’의 음원이 탑재된 시니어 전용 휴대폰 ‘갤럭시 A12 VIVA 트롯전국체전 에디션(이하 A12 VIVA 트롯)’을 7일부터 단독 출시한다고 밝혔다.

문갑인 SK텔레콤 스마트 디바이스 그룹장은 “이번 A12 VIVA 트롯은 시니어들이 선호하는 콘텐츠와 서비스를 보다 편하게 누릴 수 있도록 기획된 제품”이라며 “앞으로도 다양한 고객층의 요구와 사용성에 맞춘 합리적인 가격의 스마트폰을 지속 출시할 계획”이라고 말했다.


4. NHN, 자체 개발 AI 접목 ‘얼굴인식’ 서비스 출시

NHN, 자체 개발 AI 접목 ‘얼굴인식’ 서비스 출시

NHN이 자체 인공지능(AI) 기술을 활용한 얼굴인식 서비스를 7일 출시했다. NHN은 얼굴인식 서비스를 NHN 사옥 내 출입 게이트에 먼저 적용, 임직원 출입 시 활용한다.

NHN이 얼굴인식 서비스는 머신러닝 기술을 기반으로 양질의 얼굴 데이터셋 학습 과정을 통해 개발됐다. 이를 활용한 얼굴 감지·분석, 비교, 신원 인증 등이 가능하며, 향후 얼굴 식별이 필요한 금융, 의료, 커머스 등 다양한 온·오프라인 환경에서 맞춤형 서비스를 제공할 것으로 기대된다.


5. ‘갤버즈 프로’ 무슨 일이?…다수 사용자 외이도염·주변소리듣기 불량 호소

‘갤버즈 프로’ 무슨 일이?…다수 사용자 외이도염·주변소리듣기 불량 호소

삼성전자가 올해 1월 갤럭시S21 시리즈와 함께 선보인 무선이어폰 갤럭시버즈 프로가 외이도염을 유발한다는 의혹이 국내외에서 동시다발적으로 제기되고 있다.

갤럭시버즈 프로 사용자 중에는 “(갤럭시버즈 프로를 끼다가) 이비인후과에서 외이도염 치료받고 완치받은 뒤 다시 갤럭시버즈 프로를 사용한지 하루 만에 재발했다”, “똑같은 인이어 타입 이어폰인 이전 갤럭시버즈를 사용할 때에는 하루종일 끼고 있어도 문제가 없었는데, 갤럭시버즈 프로에서 처음으로 외이도염에 걸렸다”고 밝힌 사람도 있었다.


[백준] 12018번 Yonsei TOTO

[백준] 12018번 Yonsei TOTO

출처: [백준] 12018번 Yonsei TOTO


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 1951 677 577 35.204%

문제

연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배가 끝이 나면 과목에 대해서 마일리지를 많이 투자한 순으로 그 과목의 수강인원만큼 신청되는 방식이다.

성준이는 연세대학교 재학 중인 학생이다. 성준이는 저번 수강신청에서 실패하여 휴학을 했기 때문에 이번 수강신청만은 필사적으로 성공하려고 한다. 그래서 성준이는 학교 홈페이지를 뚫어버렸다.

그 덕분에 다른 사람들이 신청한 마일리지를 볼 수 있게 되었다. 성준이는 주어진 마일리지로 최대한 많은 과목을 신청하고 싶어 한다. (내가 마일리지를 넣고 이후에 과목을 신청하는 사람은 없다) 마일리지는 한 과목에 1에서 36까지 넣을 수 있다.


입력

첫째 줄에는 과목 수 n (1 ≤ n ≤ 100)과 주어진 마일리지 m (1 ≤ m ≤ 100)이 주어진다. 각 과목마다 2줄의 입력이 주어지는데 첫째 줄에는 각 과목에 신청한 사람 수 Pi과 과목의 수강인원 Li이 주어지고 그 다음 줄에는 각 사람이 마일리지를 얼마나 넣었는지 주어진다. (1 ≤ Pi ≤100, 1 ≤ Li ≤ 100)

(단 마일리지가 같다면 성준이에게 우선순위가 주어진다고 하자.)


출력

첫째 줄에 주어진 마일리지로 최대로 들을 수 있는 과목 개수를 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
10
11
5 76
5 4
36 25 1 36 36
4 4
30 24 25 20
6 4
36 36 36 36 36 36
2 4
3 7
5 4
27 15 26 8 14

예제 출력 1

1
4

출처


알고리즘 분류


소스코드

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
import sys
import heapq

input = sys.stdin.readline

N, M = map(int, input().split())
answer = 0
sugang = []

for _ in range(N):
P, L = map(int, input().split())
mileages = list(map(int, input().split()))
heapq.heapify(mileages)

available = L - P
if available > 0:
heapq.heappush(sugang, 1)
else:
for i in range(abs(available)):
heapq.heappop(mileages)
heapq.heappush(sugang, heapq.heappop(mileages))

count = 0
while sugang:
sugang_mileage = heapq.heappop(sugang)
if M - sugang_mileage >= 0:
M -= sugang_mileage
count += 1
else:
break
print(count)

[백준] 15903번 카드 합체 놀이

[백준] 15903번 카드 합체 놀이

출처: [백준] 15903번 카드 합체 놀이


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 (추가 시간 없음) 512 MB 4761 1895 1599 41.706%

문제

석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다!

아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다.

  1. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y)
  2. 계산한 값을 x번 카드와 y번 카드 두 장 모두에 덮어 쓴다.

이 카드 합체를 총 m번 하면 놀이가 끝난다. m번의 합체를 모두 끝낸 뒤, n장의 카드에 쓰여있는 수를 모두 더한 값이 이 놀이의 점수가 된다. 이 점수를 가장 작게 만드는 것이 놀이의 목표이다.

아기 석환이는 수학을 좋아하긴 하지만, 아직 아기이기 때문에 점수를 얼마나 작게 만들 수 있는지를 알 수는 없었다(어른 석환이는 당연히 쉽게 알 수 있다). 그래서 문제 해결 능력이 뛰어난 여러분에게 도움을 요청했다. 만들 수 있는 가장 작은 점수를 계산하는 프로그램을 만들어보자.


입력

첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다.

두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, a2, …, an이 공백으로 구분되어 주어진다. (1 ≤ ai ≤ 1,000,000)


출력

첫 번째 줄에 만들 수 있는 가장 작은 점수를 출력한다.


예제 입력 1

1
2
3 1
3 2 6

예제 출력 1

1
16

예제 입력 2

1
2
4 2
4 2 3 1

예제 출력 2

1
19

출처


알고리즘 분류


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
import heapq

input = sys.stdin.readline

N, M = map(int, input().split())
card_list = list(map(int, input().split()))

heapq.heapify(card_list) # card_list를 heap으로 변환

for _ in range(M):
x, y = heapq.heappop(card_list), heapq.heappop(card_list)
for _ in range(2):
heapq.heappush(card_list, x + y)


print(sum(card_list))

[AWS] Amazon Web Service's survey

[AWS] Amazon Web Service's survey

Survey (EC2, Auto Scaling, S3, RDS)

What is Amazon EC2?

Abbreviation for Amazon Elastic Compute Cloud, it provides scalable computing capacity in the Amazon Web Services (AWS) cloud.

With Amazon EC2, you can,

  • Build as many virtual servers as you want,
  • Manage security, network configuration, storage
  • •Reduces the need to predict server traffic more

What is Amazon Auto Scaling?

With AWS Auto Scaling, you can configure automatic scaling of the AWS resources in your application in minutes.

Amazon Auto Scaling monitors your application,

  • Set up scaling quickly,
  • Make smart scaling decisions,
  • Maintain performance automatically,
  • Reliable,
  • Pay only for what you need. (the lowest possible cost) more

What is Amazon S3?

Abbreviation for Amazon Simple Storage Service, it provides storage through a web service interface.

With Amazon S3, you can easily

  • Organize your data,
  • Fine-grained access controls according to your specific business, organization, and compliance requirements.
  • Designed to provide 99.999999999% durability more

What is Amazon RDS?

Abbreviation for Amazon Relational Database Service, Amazon RDS is a web service that operates in the cloud.

With it, you can easily

  • Set up, Operate, and Scale your relational database in the cloud.
  • Automate Hardware provisioning, Database setup, Patching and Backups more

Survey (Detail Specification of EC2)

Instance Types:

It is divided into “General purpose(T2, T3…)”, “Computing optimization(C4, C5…)”, “Memory optimization(z1d, R5…)”, “Accelerated computing(P4…)”, and “Storage optimization(H1, I3…)”. more

Pricing Plans:

  • On-Demand Instance - You are charged for what you use. However, since the unit of billing is 1 minute, even if you use 1 second, you will be charged 1 minute.
  • Spot Instance – You can use EC2 resources that are not currently in use by receiving a cheap bid at auction. They are offered at a discount of up to 90% compared to the On-Demand rate.
  • Reserved Instance - When you reserve the usage period (1 or 3 years) and usage (No/Partial/All Upfront) and pay the initial prepayment, you receive a discount on the hourly usage fee. more

2021년 5월 5일 수요일 IT뉴스

1. 파이썬, 자바 꺾고 2위 등극 …5월 TIOBE 지수 공개

파이썬, 자바 꺾고 2위 등극 …5월 TIOBE 지수 공개

매달 프로그래밍 언어의 인기 지표를 발표하는 TIOBE에서 파이썬(Python)이 자바(JAVA)를 누르고 2위에 올랐다. (관련기사) 4월의 1위 프로그래밍 언어 자리는 지난달과 동일하게 C가 차지했다.
올해의 언어상을 수상했던 Objective-C가 지난달 20위 밖으로 퇴장한 이후 20위 내 프로그래밍 언어들의 변동은 크게 없지만, 20위 밖에서 러스트(Rust)ㆍ다트(Dart)ㆍ줄리아(Julia)가 상승세를 보인다.

5월 TIOBE 지수 20위 순위 표. (사진=TIOBE)


2. 2위 배달앱 ‘요기요’ 인수전…신세계·야놀자 참여

2위 배달앱 ‘요기요’ 인수전…신세계·야놀자 참여

'요기요' 운영사 딜리버리히어로코리아 인수전에 신세계 야놀자 등이 뛰어들었다./사진=뉴시스

4일 투자은행(IB) 업계에 따르면 독일 딜리버리히어로(DH)와 매각 주관사 모건스탠리가 이날 진행한 요기요 운영사 딜리버리히어로코리아 예비 입찰에 신세계, 야놀자, MBK파트너스 등 국내 유통 대기업과 유니콘(기업가치 1조원 이상의 비상장사), 사모투자펀드(PEF)가 참여한 것으로 알려졌다.
야놀자는 요기요 인수로 여행·숙박 사업과 배달 서비스를 연계하는 방안을 모색하고 있으며, 야놀자가 올해 상장을 준비하는 만큼 인수 성공시 기업가치가 달라질 수 있다는 분석도 나온다.


3. 카카오가 꽉잡은 3.5조원 선물하기, 네이버도 눈독

카카오가 꽉잡은 3.5조원 선물하기, 네이버도 눈독

비대면(언택트) 흐름 속 가파른 성장세를 보이는 ‘선물하기’ 시장에서 네이버가 카카오에 도전장을 내밀었고, 카카오톡을 기반으로 한 관계형 커머스에 강점을 보이는 카카오를 상대로 네이버는 45만 스마트스토어를 앞세워 공략에 나섰다.

4일 이커머스 업계에 따르면 선물하기 시장 규모는 지난해 기준 약 3조5000억원 수준으로 추산되며, 이 가운데 3조원 가량이 카톡 선물하기 거래액으로 지난해 12월 기준 이용자만 2173만명에 이른다.


4. [단독] LG전자 모바일인력 600명, LG엔솔로 간다…왜

[단독] LG전자 모바일인력 600명, LG엔솔로 간다…왜

LG전자 모바일 인력 어디로 이동하나. 그래픽=김영옥 기자 yesok@joongang.co.kr

4일 재계와 LG전자 등에 따르면 LG전자는 지난달 휴대전화 사업 종료를 선언한 후 3400여 명의 모바일(MC)사업본부 인력의 재배치를 구체화하고 있다.
회사 측은 직원 개개인의 의사를 최대한 반영하고 있으며, 사업 부서를 해체거나 매각할 때 국내 어느 대기업에서도 전례가 없는 파격적인 조치다.


5. [OTT온에어] 넷플릭스 1Q 가입자 성장둔화…5천500억 韓 투자 ‘우려’

[OTT온에어] 넷플릭스 1Q 가입자 성장둔화…5천500억 韓 투자 ‘우려’

[사진=미디어미래연구소 M-리포트 재인용]

넷플릭스의 올 1분기 매출은 71억6천300만달러(약 8조10억원), 영업이익은 19억6천만달러(약 2조1천900억원) 수준으로 전년동기대비 각각 늘었고, 영업이익률도 27.4%에 육박하며 실적은 견고했다.
사실상 사상 최고치임에도 불구하고 600만명 이상 증가할 것이라 예측했던 넷플릭스 글로벌 가입자 순증이 398만명에 그쳤기 때문에 각국 애널리스트의 시선은 보수적이다.


[프로그래머스] 더 맵게

[프로그래머스] 더 맵게

출처: [코딩테스트 연습] 디스크 컨트롤러


문제

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.

1
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)

Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.
Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.


제한

  • scoville의 길이는 2 이상 1,000,000 이하입니다.
  • K는 0 이상 1,000,000,000 이하입니다.
  • scoville의 원소는 각각 0 이상 1,000,000 이하입니다.
  • 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.

입출력

scoville K return
[1, 2, 3, 9, 10, 12] 7 2

입출력 예 1

  1. 스코빌 지수가 1인 음식과 2인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
    새로운 음식의 스코빌 지수 = 1 + (2 * 2) = 5
    가진 음식의 스코빌 지수 = [5, 3, 9, 10, 12]
  2. 스코빌 지수가 3인 음식과 5인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
    새로운 음식의 스코빌 지수 = 3 + (5 * 2) = 13
    가진 음식의 스코빌 지수 = [13, 9, 10, 12]

모든 음식의 스코빌 지수가 7 이상이 되었고 이때 섞은 횟수는 2회입니다.


풀이

  • scoville리스트를 heaq구조로 바꿔주고, 조건에 맞게 두번의 heappop..
  • 위 계산을 다시 scoville에 넣어주고 answer카운트 증가–> K 이상될때까지
    K이상이 될 수 없으면 return -1

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import heapq


def solution(scoville, K):
answer = 0
# heap = []
# for num in scoville:
# heapq.heappush(heap, num)
heapq.heapify(scoville)

while scoville[0] < K:
mix = heapq.heappop(scoville) + (heapq.heappop(scoville) * 2)
heapq.heappush(scoville, mix)
answer += 1
if len(scoville) == 1 and scoville[0] < K:
return -1
return answer


# print(solution([1, 2, 3, 9, 10, 12], 7)) # 2

[프로그래머스] 디스크 컨트롤러

[프로그래머스] 디스크 컨트롤러

출처: [코딩테스트 연습] 디스크 컨트롤러


문제

하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다.

예를들어

1
2
3
- 0ms 시점에 3ms가 소요되는 A작업 요청
- 1ms 시점에 9ms가 소요되는 B작업 요청
- 2ms 시점에 6ms가 소요되는 C작업 요청

와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다.
Screen Shot 2018-09-13 at 6.34.58 PM.png

한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다.
Screen Shot 2018-09-13 at 6.38.52 PM.png

1
2
3
- A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms)
- B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11ms)
- C: 2ms부터 대기하다가, 12ms 시점에 작업을 시작해서 18ms 시점에 작업 완료(요청에서 종료까지 : 16ms)

이 때 각 작업의 요청부터 종료까지 걸린 시간의 평균은 10ms(= (3 + 11 + 16) / 3)가 됩니다.

하지만 A → C → B 순서대로 처리하면
Screen Shot 2018-09-13 at 6.41.42 PM.png

1
2
3
- A: 3ms 시점에 작업 완료(요청에서 종료까지 : 3ms)
- C: 2ms부터 대기하다가, 3ms 시점에 작업을 시작해서 9ms 시점에 작업 완료(요청에서 종료까지 : 7ms)
- B: 1ms부터 대기하다가, 9ms 시점에 작업을 시작해서 18ms 시점에 작업 완료(요청에서 종료까지 : 17ms)

이렇게 A → C → B의 순서로 처리하면 각 작업의 요청부터 종료까지 걸린 시간의 평균은 9ms(= (3 + 7 + 17) / 3)가 됩니다.

각 작업에 대해 [작업이 요청되는 시점, 작업의 소요시간]을 담은 2차원 배열 jobs가 매개변수로 주어질 때, 작업의 요청부터 종료까지 걸린 시간의 평균을 가장 줄이는 방법으로 처리하면 평균이 얼마가 되는지 return 하도록 solution 함수를 작성해주세요. (단, 소수점 이하의 수는 버립니다)


제한

  • jobs의 길이는 1 이상 500 이하입니다.
  • jobs의 각 행은 하나의 작업에 대한 [작업이 요청되는 시점, 작업의 소요시간] 입니다.
  • 각 작업에 대해 작업이 요청되는 시간은 0 이상 1,000 이하입니다.
  • 각 작업에 대해 작업의 소요시간은 1 이상 1,000 이하입니다.
  • 하드디스크가 작업을 수행하고 있지 않을 때에는 먼저 요청이 들어온 작업부터 처리합니다.

입출력

jobs return
[[0, 3], [1, 9], [2, 6]] 9

입출력 예 1

문제에 주어진 예와 같습니다.

  • 0ms 시점에 3ms 걸리는 작업 요청이 들어옵니다.
  • 1ms 시점에 9ms 걸리는 작업 요청이 들어옵니다.
  • 2ms 시점에 6ms 걸리는 작업 요청이 들어옵니다.

풀이

  • 우선순위 큐를 이용해서…
  • 현재 시점에서 처리할 수 있는 작업들을 힙에 넣고, 하나를 뽑아 현재 시점과 총 대기시간을 구해주는 것을 모든 작업을 처리할 때까지 반복한다.
    힙에 push를 할 때는 작업의 소요 시간 기준으로 최소힙이 만들어져야 하기 때문에 jobs의 요소를 그대로 넣지 않고 [작업의 소요 시간, 작업이 요청되는 시점]으로 요소의 앞 뒤를 바꿔서 넣어준다.현재 시점에서 처리할 수 있는 작업인지를 판별하는 조건은 작업의 요청 시간바로 이전에 완료한 작업의 시작 시간(start)보다 크고 현재 시점(now)보다 작거나 같아야 한다.
    만약 현재 처리할 수 있는 작업이 없다면, 남아 있는 작업들의 요청 시간이 아직 오지 않은 것이기 때문에 현재 시점(now)을 하나 올려준다. 출처

소스코드

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
import heapq


def solution(jobs):
answer, now, i = 0, 0, 0
start = -1
heap = []

while i < len(jobs):
for j in jobs:
if start < j[0] <= now:
heapq.heappush(heap, [j[1], j[0]])
if len(heap) > 0:
current = heapq.heappop(heap)
start = now
now += current[0]
answer += (now - current[1])
i += 1
else:
now += 1
return int(answer / len(jobs))


# print(solution([[0, 3], [1, 9], [2, 6]])) # 9

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

1. 애플·에픽, 세기의 ‘앱스토어 전쟁’ 마침내 시작

애플·에픽, 세기의 ‘앱스토어 전쟁’ 마침내 시작

두 회사 공방의 핵심 쟁점은 앱스토어를 운영하고 있는 애플의 독점 행위다. 에픽은 애플이 앱스토어 이외 다른 앱 장터를 허용하지 않으면서 사실상 경쟁을 막고 있다고 주장하고 있으며 앱 배포 못지 않게 인앱결제 문제도 쟁점으로 떠오르고 있다.


2. 13일부터 킥보드 헬멧 의무화…”공용이냐, 개인용이냐” 업계 ‘딜레마’

13일부터 킥보드 헬멧 의무화…”공용이냐, 개인용이냐” 업계 ‘딜레마’

2021.1.12/뉴스1 © News1 이성철 기자

다음달 13일부터 헬멧을 착용하지 않고 전동킥보드를 타면 이용자에게 범칙금 2만원이 부과된다.
업계는 헬멧 착용을 유도하되, 킥보드 이용률은 유지하기 위한 방법을 고심하고 있으며, 각사의 대처 능력에 따라 업계의 시장 점유율도 차이가 벌어질 전망이다.


3. TV도 워크맨도 다 버리더니… ‘콘텐츠’로 창사 이래 최대실적, 소니의 부활

TV도 워크맨도 다 버리더니… ‘콘텐츠’로 창사 이래 최대실적, 소니의 부활

워크맨과 TV로 1990년대까지 세계를 호령했던 소니는 2000년대부터 인터넷 시대에 대응하지 못하면서 침몰의 길로 들어섰다.

하지만, 게임과 음악, 영화 등을 포함한 엔터테인먼트 사업의 견인으로 2일 업계에 따르면, 소니그룹은 최근 발표한 2020회계연도(작년 4월~올해 3월) 순이익(연결기준)이 전년의 2배 수준인 1조1,717억 엔(약 11조9,500억 원)에 달했고, 매출액도 9% 늘어난 8조9,993억 엔(약 91조8,000억 원)으로, 순이익과 매출액 모두 사상 최대치다.


4. VR 회사 또 샀다…페이스북, 다운푸어 인수

VR 회사 또 샀다…페이스북, 다운푸어 인수

지난달 30일(현지시간) 페이스북이 VR 슈팅 게임 온워드를 개발한 ‘다운푸어 인터렉티브’를 인수했다.

페이스북은 지난 2019년 말부터 VR 개발사를 활발히 인수해왔으며, “VR을 육성하기 위해 다양한 방법을 모색하고 있다”며 “향후 몇 년간 VR 게임을 위한 놀랍고 혁신적인 계획도 가지고 있다”고 밝혔다.


5. 구글 이어 야후도 ‘이것’에 손 뗐다… ‘네이버 지식인’만 살아남은 비결

구글 이어 야후도 ‘이것’에 손 뗐다… ‘네이버 지식인’만 살아남은 비결

이달 4일 미국 야후는 2005년부터 운영해온 ‘야후! 앤서스(Yahoo! Answers) 서비스’를 완전히 종료한다.

네이버에 따르면 지식공유 서비스인 ‘네이버 지식인’의 글 생산량은 역대 최대치를 돌파했으며, 지식iN 서비스에서 한 단계 진화한 ‘네이버 엑스퍼트’는 ‘SME 대상의 마이크로 컨설팅’ 플랫폼으로 자리 잡으며 빠르게 성장하고 있다.

  • 야후 앤서스는 사용자가 질문하면 다른 사용자가 답변을 달아주고 검색창에 질문을 입력하면 답이 될 만한 정보를 찾아주는 서비스로, 국내에서는 네이버 지식인과 비슷하다.
  • 네이버 엑스퍼트는 결제, 라이브기술, 채팅 등 네이버가 개발한 기술들을 고도화한 서비스로, 전문가와 사용자가 일대일(1:1) 비공개로 만날 수 있다는 점이 특징이다.

6. 줌이 장악한 화상회의 플랫폼… 국내 업체들 “좀, 들어갈게”

줌이 장악한 화상회의 플랫폼… 국내 업체들 “좀, 들어갈게”

후발주자로 분류되던 국내 IT업체들도 다양한 기능을 탑재한 협업 툴을 내세우며 줌에 도전장을 던지고 있다. 한 업계 관계자는 2일 “줌은 화상회의만 가능한 플랫폼이다보니 용도가 한정적”이라며 “업무 툴을 여러 개 두기보단 하나로 통합해서 쓰는 게 효율적이라고 보기 때문에 종합 협업 툴을 지향하는 국내 업체들도 발전 가능성이 충분하다”고 설명했다.

2021년 4월 30일 금요일 IT뉴스

1. 카카오 이어 네이버도 ‘대기업집단’ 반열…재계 순위 27위 ‘껑충’

카카오 이어 네이버도 ‘대기업집단’ 반열…재계 순위 27위 ‘껑충’

사진=네이버

네이버는 사업이익 증가, 외부 신규투자 유치로 자산총액이 9조5000억원에서 13조6000억원으로 급증하면서 재계 순위가 41위에서 27위로 약진했고, 넷마블(36위), 넥슨(34위)도 자산총액이 각각 10조7000억원, 12조원으로 늘어 상호출자제한 기업집단으로 지정됐으며, 이들 기업은 상호출자가 금지된다.

공정위는 “코로나19 극복 과정에서 시중 유동성이 크게 증가해 자산가치가 급등하면서 지정집단이 대폭 확대됐다”며 “(특히) 비대면 시장이 급성장함에 따라 IT업종을 주력으로 하는 기업집단들의 성장세가 뚜렷했다”고 설명했다.

  • 상호출자: 회사간에 주식을 서로 투자하고 상대회사의 주식을 상호보유하는 것

2. [단독] “쿠팡맨 말고 당근맨?”…당근마켓 ‘3000원’ 배송 서비스 나왔다 [IT선빵!]

[단독] “쿠팡맨 말고 당근맨?”…당근마켓 ‘3000원’ 배송 서비스 나왔다 [IT선빵!]

당근마켓 홈페이지, 망고보드

중고거래 애플리케이션 당근마켓이 거래 물품을 배송해주는 ‘당근배송’ 서비스를 내놨으며, 일부 지역의 서비스 테스트를 시작으로, 본격적인 배송 서비스가 도입될 것으로 전망된다.

당근마켓 측은 “다만, 직거래가 아니어서 실제로 물건을 확인하지 않고 진행되다가 생기는 거래 분쟁, 물품 진위 여부 등은 배송원이 확인하기 어려워 당근마켓에서 관여하지 않는다”고 설명했고 “테스트 결과와 이용자들의 반응에 따라 타지역 확대 여부가 결정될 예정”이라며 “테스트 서비스로, 아직 공식 서비스 오픈 일정은 미정”이라고 말했다.


3. “배달 거절하면 패널티” vs.“싼 배달 거절은 권리” 배달앱과 라이더 ‘충돌’ [IT선빵!]

“배달 거절하면 패널티” vs.“싼 배달 거절은 권리” 배달앱과 라이더 ‘충돌’ [IT선빵!]

“배달 콜 거절하지 마세요. 패널티 부과합니다.”(배달앱 측 입장)

“최저 단가나 장거리 배달을 거절하는 건 권리 아닌가요? 부당합니다.”(배달 라이더 측 입장)

배달의민족은 29일부터 라이더 전용 앱 '배민커넥트'에 ‘배차 수락률’과 ‘수락 후 배달 완료율’을 표시한다. [배민커넥트 공지]

쿠팡이츠에 이어 배달의민족도 라이더들의 배달 수락률과 배달 완료율을 표시하며, 라이더들은 배달앱이 이를 근거로 패널티를 부과할 가능성이 커졌다며 우려하고 있다.

앞서 쿠팡이츠는 ‘배달 호출(콜) 거절과 취소’를 이유로 일부 라이더에게 하루 동안 배달을 제한한다고 통보했지만, 일부 라이더들은 업무 제한 기준이 고객센터에 문의해도 “내부 규정상 기준을 공개할 수 없다”는 입장만 반복하거나, 상담원마다 언급하는 기준이 다르기 때문에 명확하지 않다고 주장하고 있다.


4. “격주로 4일 근무”… 게임업계 이번엔 복지전쟁

“격주로 4일 근무”… 게임업계 이번엔 복지전쟁

img

예전 게임 업계는 크런치 모드(게임 개발 막바지에 밤을 새우며 작업하는 상황)로 악명 높았지만, 요즘 업계에선 “게임 업체들이 워라밸 선진 기업들로 속속 바뀌고 있다”는 말이 나온다.

임금 인상에 복지 경쟁까지 불붙으면서 중장기적으로 기업의 인건비 부담이 크게 늘어날 것이라는 우려도 나오며, 게임 업계에서는 “임금을 대폭 인상한 데 이어 복지 지출까지 커지면서 게임 업체들의 인건비 지출 규모는 지난해 대비 20~30% 증가할 것”이라는 전망이 나온다.


5. LG폰은 없애고 특허만 남겼다…스마트가전·전장에 IP 이식

LG폰은 없애고 특허만 남겼다…스마트가전·전장에 IP 이식

LG전자가 휴대폰 사업에서 26년간 쌓은 특허와 기술력을 스마트가전, 전장 등 미래사업으로 이관하며, 휴대폰 핵심 지식재산권(IP) 자산은 차량용 커넥티비티 등을 개발하는 전장솔루션(VS)사업본부에서 적극적으로 활용할 방침이다.

LG전자는 휴대폰 사업 종료 후에도 미래준비를 위한 핵심 모바일 기술의 연구개발은 지속할 방침이고, 특히 6세대 이동통신(6G)·카메라·소프트웨어 등 핵심 모바일 기술은 차세대 TV·가전·전장부품·로봇 등에 필요한 역량으로 꼽힌다. 회사는 이 분야에서 최고기술책임자(CTO)부문 중심으로 연구개발을 지속할 예정이다.


6. 코로나 내년초엔 끝날까…’CES 2022’ 라스베이거스서 현장 진행

코로나 내년초엔 끝날까…’CES 2022’ 라스베이거스서 현장 진행

올해 비대면 진행된 세계 최대 전자·정보기술(IT) 전시회 CES가 내년에는 예년처럼 라스베이거스에서 현장 행사로 열린다.

미국 야후는 “내년 1월 백신 접종 상황이 얼마나 진척될 지도 모른다”며 “올해는 2020년 당시 방문객수 17만 명보다는 적겠지만, 상당수가 외국인 참가자라는 걸 고려하면 상황이 어떻게 될지 모르겠다”고 우려했다.