2021년 4월 10일 토요일 주간 IT 뉴스 - LG전자 MC사업본부 "

개요

이번 한 주 IT뉴스 정리의 주제는 LG전자의 모바일커뮤니케이션 사업부의 철수이다. IT뉴스] 매일 30분 IT 뉴스 21-04-04
뉴스 원문


LG전자 스마트폰 사업 철수

LG전자가 스마트폰 사업을 접는다는 소식은 지난 1월말에 공식화했다. 올해 1월 롤러블폰이 CES2021에 등장하면서 많은 기대를 했지만, 지난 1월 20일 권봉석 LG전자 사장은 “모바일 사업 관련해 현재·미래의 경쟁력을 냉정하게 판단해 최선의 선택을 해야 할 시점에 이르렀다”면서 “현재 모든 가능성을 열어두고 사업 운영 방향을 면밀히 검토하고 있다”고 사업 철수를 공식화했다.

초기만해도 매각이냐 철수냐 많은 말이 있었지만, 결국 사업 철수로 가닥이 잡혔고, 4월 5일 서울 여의도 본사에서 이사회를 열고 휴대전화 사업을 담당하는 MC사업부의 생산 및 판매를 종료하기로 결정했다고 공식 발표했다.

하지만, 사업은 없어져도 사람은 남는 법, 3700여명 사업부 인력을 ‘어떻게, 잘’ 배치할 것인지는 또 다른 중요한 숙제이다. 사업의 ‘완전 철수’가 기정사실화된 가운데, 3700여명에 달하는 인력 재배치 문제와 핵심 기술과 특허권의 활용 방향성은 공개된 바 없다.

LG그룹 계열사 분위기도 어수선합니다. 핵심 개발 업무를 제외한 이들은 업무가 겹칠 수밖에 없기 때문입니다. 업계 한 관계자는 “LG전자 MC사업본부 내 인력 상당수가 개발자가 아닌 사무직이라고 들었다. 기존 계열사 임직원들 역시 인력 대이동과 관련 걱정이 많다”고 토로합니다.


왜?

과거 ‘프라다폰’, ‘초콜릿폰’, ‘샤인폰’ 등 블랙라벨 시리즈를 성공시킨 LG전자의 휴대폰 사업이 침체된 데는 2010년으로 접어들 무렵 경영진의 사업 판단 오류가 주효했습니다. 애플이 2007년 iOS 기반의 아이폰을 출시하며 스마트폰 혁명을 주도할 때도 LG전자는 과거 피처폰의 영광에 안주했습니다. 스트래티지애널리틱스(SA)에 따르면 작년 3분기 말 기준 국내 삼성전자 시장점유율(MS)은 70%를 넘은 반면 LG전자는 9%대로 감소했습니다.


이후

공식발표 이후 LG전자의 입장은 “휴대전화 사업을 종료하더라도 모바일 기술의 연구개발은 지속한다. 6G 이동통신, 카메라, 소프트웨어 등 핵심 모바일 기술에 집중하겠다”라고 밝혔다. MC사업부 직원 또한 LG 계열회사 등으로 재배치될 계획이다라고 밝히기만 했다.

이외에는 LG전자가 휴대폰 사업을 철수키로 결정하면서 LG 임직원들의 ‘아이폰’ 갈아타기에 속도가 붙고 있다고 한다. 지금까진 애사심 차원에서 ‘LG폰’을 썼지만 이젠 LG 계열사의 주요 고객사인 애플이 생산하는 ‘아이폰’을 쓰는 것이 회사에 도움이 될 것이란 판단에서다.

그동안 업계 관계자는 “임직원들도 LG전자 스마트폰이 좋다기 보다 내부 분위기상 어쩔 수 없이 썼다는 얘기들이 많았다”며 “사업 철수가 확정된 후에는 한 LG 계열사에서 올 들어 팀원 절반 가까이가 ‘아이폰’으로 교체했다는 말이 들릴 정도로 ‘아이폰’을 선호하는 분위기가 급속도로 형성됐다”고 말했다.


LG전자가 스마트폰 사업을 접는다는 소식을 듣고 참 여러생각이 들었다. 국내에서 먼저 사업을 접었던 팬택 스카이도 갑자기 생각났다. 10년전만해도 우리나라에는 삼성,LG, 팬택(스카이) 피쳐폰, 스마트폰을 사용하는 사람들이 많았다. 그리고 내 첫번째 스마트폰은 팬택의 제품이였고, 그와 동시에 팬택이 망해가는 것을 같이 봤다. 그 이후 스마트폰은 안드로이드와 iOS 사이에서 나는 안드로이드를 선택했고, 삼성 스마트폰을 구매했다. LG제품 또한 다양하고 신기한 것들이 많았지만, 그 기술에 완벽함이 삼성 스마트폰에 비해 떨어져보였다. 그 땐 잘 몰랐지만, 그냥 그렇게 보였다. 하지만 국내 시장 점유율 뿐만 아니라 세계 시장 점유율도 어느정도 있었던 것 같았다. 중국 기업들이 들어오기전까지…
뭐 어쨋든…LG는 세계 최초의 타이틀은 꽤 있었지만, 뭔가 자꾸 부족했다. 최근에 나온 윙… 새로운 폼펙터.. 신기했다. 하지만 그게 다였다.

그렇게 LG전자는 사업을 접기로 했고, LG스마트폰을 사용한 적은 없지만 아쉬웠다. 이젠 국내에서 메이저급으로 스마트폰을 생산하던 기업들 중 삼성만 남았기 때문이다. 그리고 피쳐폰시장에서 국내에서 압도적이었던 그 사업부가 망한게…
핀란드의 노키아의 길을 밟는구나..

기업을 유지하고 성장하게 하는 건 경영진의 혜안일 수도 있지만, 그곳에서 일하는 직원들이 있기에 가능한 것이지만, 그 기업의 향후 존폐여부를 결정짓는 것은 경영진의 (이하생략)

어느것이든 영원한 승자는 없다. 현실에 안주하지말고 계속 움직이자.

[백준] 7576번 토마토

[백준] 7576번 토마토

출처: [백준] 7576번 토마토


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 84627 29824 18694 33.321%

문제

철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.

img

창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다.

토마토를 창고에 보관하는 격자모양의 상자들의 크기와 익은 토마토들과 익지 않은 토마토들의 정보가 주어졌을 때, 며칠이 지나면 토마토들이 모두 익는지, 그 최소 일수를 구하는 프로그램을 작성하라. 단, 상자의 일부 칸에는 토마토가 들어있지 않을 수도 있다.


입력

첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마토가 들어있지 않은 칸을 나타낸다.

토마토가 하나 이상 있는 경우만 입력으로 주어진다.


출력

여러분은 토마토가 모두 익을 때까지의 최소 날짜를 출력해야 한다. 만약, 저장될 때부터 모든 토마토가 익어있는 상태이면 0을 출력해야 하고, 토마토가 모두 익지는 못하는 상황이면 -1을 출력해야 한다.


예제 입력 1

1
2
3
4
5
6 4
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1

예제 출력 1

1
8

예제 입력 2

1
2
3
4
5
6 4
0 -1 0 0 0 0
-1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1

예제 출력 2

1
-1

예제 입력 3

1
2
3
4
5
6 4
1 -1 0 0 0 0
0 -1 0 0 0 0
0 0 0 0 -1 0
0 0 0 0 -1 1

예제 출력 3

1
6

예제 입력 4

1
2
3
4
5
6
5 5
-1 1 0 0 0
0 -1 -1 -1 0
0 -1 -1 -1 0
0 -1 -1 -1 0
0 0 0 0 0

예제 출력 4

1
14

예제 입력 5

1
2
3
2 2
1 -1
-1 1

예제 출력 5

1
0

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

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

input = sys.stdin.readline

N, M = map(int, input().split())
boxes = [list(map(int, input().split())) for _ in range(M)]

dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]


def bfs():
while tomatoes:
x, y = tomatoes.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

if 0 <= nx < M and 0 <= ny < N and boxes[nx][ny] == 0:
boxes[nx][ny] = boxes[x][y] + 1
tomatoes.append((nx, ny))


tomatoes = deque()
for i in range(M):
for j in range(N):
if boxes[i][j] == 1:
tomatoes.append((i, j))

bfs()

alreadyTrue = False
count = 0
for row in boxes:
for tomato in row:
if tomato == 0:
alreadyTrue = True
count = max(count, tomato)

if alreadyTrue:
print(-1)
elif count == -1:
print(0)
else:
print(count - 1)

[백준] 2178번 미로 탐색

[백준] 2178번 미로 탐색

출처: [백준] 2178번 미로 탐색


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 192 MB 88211 34772 22181 38.133%

문제

N×M크기의 배열로 표현되는 미로가 있다.

1 0 1 1 1 1
1 0 1 0 1 0
1 0 1 0 1 1
1 1 1 0 1 1

미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다.

위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다.


입력

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.


출력

첫째 줄에 지나야 하는 최소의 칸 수를 출력한다. 항상 도착위치로 이동할 수 있는 경우만 입력으로 주어진다.


예제 입력 1

1
2
3
4
5
4 6
101111
101010
101011
111011

예제 출력 1

1
15

예제 입력 2

1
2
3
4
5
4 6
110110
110110
111111
111101

예제 출력 2

1
9

예제 입력 3

1
2
3
2 25
1011101110111011101110111
1110111011101110111011101

예제 출력 3

1
38

예제 입력 4

1
2
3
4
5
6
7
8
7 7
1011111
1110001
1000001
1000001
1000001
1000001
1111111

예제 출력 4

1
13

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

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
import sys
from collections import deque

input = sys.stdin.readline

N, M = map(int, input().split())
# matrix 배열
matrix = [list(map(int, input().rstrip())) for _ in range(N)]

# 이동할 네 방향 정의 (상,하,좌,우)
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]


# BFS 소스코드 구현
def bfs(x, y):
# 큐(Queue) 구현을 위해 deque 라이브러리 사용
queue = deque()
queue.append((x, y)) # 시작점 (0,0)
# 큐가 빌 때까지 반복하기
while queue:
x, y = queue.popleft()
# 현재 위치에서 4가지 방향으로의 위치 확인
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

# 미로 탐색 공간 내에서만
if 0 <= nx < N and 0 <= ny < M:
# 벽이 아닌경우
if matrix[nx][ny] == 1:
queue.append((nx, ny))
matrix[nx][ny] = matrix[x][y] + 1
# 가장 오른쪽 아래까지의 최단 거리 반환
return matrix[N - 1][M - 1]


print(bfs(0, 0))

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

1. [단독] 진격의 카카오, 이베이 대신 1조 유니콘 ‘지그재그’ 인수

단독 진격의 카카오 이베이 대신 1조 유니콘 지그재그 인수 | 한경닷컴 (hankyung.com)

사진=크로키닷컴

8일 투자은행(IB) 및 IT 업계에 따르면 카카오는 국내 1위 여성 의류 온라인쇼핑몰 ‘지그재그’(법인명 크로키닷컴)의 최대 주주에 오를 예정이며, 카카오는 카카오 본사가 신설 자회사를 설립하고, 이 회사와 지그재그를 합병하는 방식의 거래 구조를 고안했다. 그간 카카오커머스 등 쇼핑사업 내에선 경쟁사 대비 품목 다양성을 늘리는 문제를 두고 고심이 깊었고, 카카오 내부적으론 한 때 유사한 구조로 무신사와 합병하는 방안도 고민했지만 무신사의 기업가치가 빠르게 늘면서 지그재그로 선회했고 선물하기·쇼핑하기 등 ‘커머스’ 역량 확대를 고민해온 카카오 입장에서도 최적의 거래라는 평가다.

  • 지그재그: 지그재그는 개발자 출신인 서정훈 대표가 2015년 설립한 패션 플랫폼이다. 이용자가 취향에 맞춰 카테고리를 설정하면, 해당 조건에 맞춰 플랫폼에 입점한 4000곳 이상 업체(Soho)들이 보유한 제품을 한 번에 볼 수 있는 서비스를 고안했다.

2. 애플 “사용자 허락없는 개인정보 추적앱 차단” 페이스북 광고 치명타

애플 “사용자 허락없는 개인정보 추적앱 차단” 페이스북 광고 치명타 - 조선일보 (chosun.com)

애플이 이달 중 아이폰 운영체제를 업데이트해 사용자 허락 없이 개인정보를 추적하는 앱을 차단한다.
백서에 따르면, 아이폰 업데이트 이후 이용자가 특정 앱을 실행하면 ‘이 앱이 사용자의 활동을 추적하도록 허용하시겠습니까’라는 창이 뜨고, 이용자는 ‘추적 금지 요청’이나 ‘허용’을 선택할 수 있으며, 애플은 더 나아가 설정-프라이버시 탭에서 모든 앱에 대한 추적을 일괄적으로 거절할 수 있는 기능도 넣을 예정이다.


3. [팩플] 회원 3200만 싸이월드 부활한다는데···돈·기술 어디에?

[팩플] 회원 3200만 싸이월드 부활한다는데···돈·기술 어디에? : 네이버 뉴스 (naver.com)

*경영난을 겪다 지난해 폐쇄됐던 SNS 싸이월드. 곧 부활을 알렸다. 사진 싸이월드*

3200만 회원 싸이월드가 부활한다는데, 기대와 함께 의혹도 부풀었고, 업계에서는 ‘돈과 기술은 있나’, ‘회사의 실체가 뭐냐’라고 묻는다.

싸이월드는 모바일 대응이 느려 2010년대 들어 쇠락했고 주인이 수차례 바뀌었으며, 서버 비용을 못 내 지난해 사이트가 닫혔던 싸이월드를 다시 열겠다고, ‘싸이월드Z’가 서비스 운영권을 10억원에 인수했으며, 싸이월드Z는 5개 회사가 컨소시엄을 이뤘다고 밝혔지만, 이 중 이름을 공개한 곳은 2개사 뿐이다. 두 곳 모두 코스닥 상장사인데, 싸이월드 투자에 대해 공시한 건 없다.

  • 컨소시엄(consortium)은 2가지 이상의 개인 또는 회사, 단체, 정부의 협동체(협회)로 공통의 활동에 참여하는 목적을 지니며 공통의 목적을 달성하기 위해 그들의 자원을 투입한다.

4. 쏘카, 종합 모빌리티 전쟁 승기 잡는다 [K-유니콘]

쏘카, 종합 모빌리티 전쟁 승기 잡는다 [K-유니콘] : 네이버 뉴스 (naver.com)

img

모빌리티 업계 첫 ‘유니콘(기업가치 1조원 이상 비상장기업)’인 쏘카는 내년 기업공개(IPO)를 앞두고 기술 역량과 사업 포트폴리오를 강화하고 있다

쏘카 주력사업인 차량공유(카셰어링) 운영 효율성을 높여 수익성을 개선하고 있으며, 차량구독 서비스 ‘쏘카패스’와 장기렌트 형태 월 단위 차량공유 서비스 ‘쏘카플랜’ 등을 운영 중이고, 또 쏘카 자회사 VCNC는 △가맹택시 ‘타다 라이트’ △고급택시호출 ‘타다 플러스’ △대리운전 중개 ‘타다 대리’ 등을 통해 모든 이동에 정보기술(IT)을 융합하며 사업을 확대하고 있다.


5. 12번째 한국 유니콘 ‘센드버드’를 만든 ‘API 이코노미’

12번째 한국 유니콘 ‘센드버드’를 만든 ‘API 이코노미’ : 네이버 뉴스 (naver.com)

우아한형제들(배달의민족), 넥슨, SSG닷컴, KB국민은행, 중고나라, 레딧, 야후…분야는 각기 달라도 널리 알려진 이들 기업에는 모두 센드버드의 채팅 플랫폼을 도입했다는 것이라는 한 가지 공통점이 있다.

앞서 유니콘이 된 우아한형제들이나 쿠팡은 모두 대중에 널리 알려진 B2C(기업·소비자간거래) 기업이다. 이와 달리 센드버드처럼 기업만을 대상으로 서비스를 제공하는 B2B(기업간거래) 기업이 유니콘에 오른 건 국내 스타트업 사상 처음 있는 사례로 더욱 눈길을 끈다.


6. 인생술이 집으로 온다…’술담화’ 창업 스토리

인생술이 집으로 온다…’술담화’ 창업 스토리 : 네이버 뉴스 (naver.com)

*술담화 홈페이지*

‘찾아오는 인생술’이라는 문구를 내건 전통주 구독 서비스 ‘술담화’는 2018년 설립됐고, 술담화 ’담화박스’는 2천 개 종류 전통주 중 테마에 맞게 선별돼 페어링 안주, 큐레이션 카드와 함께 매달 소비자에게 제공된다.

그는 외국에서 우연히 ‘우리술 대축체’에 참여했고, 처음으로 희석식 소주와 맥주를 제외한 한국 술을 마신후, 너무 맛있어서 온라인에서 전통주를 구매해봤는데, UI/UX(사용자 환경과 경험)가 너무 불편했고 큐레이션 역시 너무 부족해 구매를 포기했고, 반년 뒤, 시장이 전혀 바뀌지 않은 것을 보고 전통주 관련 창업을 하기로 결심했습니다.”

[백준] 2606번 바이러스

[백준] 2606번 바이러스

출처: [백준] 2606번 바이러스


문제

신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.

예를 들어 7대의 컴퓨터가 <그림 1>과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.

img

어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어진다. 이어서 그 수만큼 한 줄에 한 쌍씩 네트워크 상에서 직접 연결되어 있는 컴퓨터의 번호 쌍이 주어진다.


출력

1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다.


예제 입력 1

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

예제 출력 1

1
4

힌트


출처


알고리즘 분류


풀이


소스코드_BFS

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
import sys
from collections import deque

input = sys.stdin.readline

computers = int(input())
edges = int(input())

networks = {}
for i in range(computers):
networks[i + 1] = set()

for i in range(edges):
a, b = map(int, input().split())
networks[a].add(b)
networks[b].add(a)


def bfs(network, start):
queue = [start]
while queue:
for i in network[queue.pop()]:
if i not in visited:
visited.append(i)
queue.append(i)


visited = []
bfs(networks, 1)
print(len(visited) - 1)

소스코드_DFS(List)

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

sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline


def dfs(graph, v, visited):
visited[v] = True
for i in graph[v]:
if not visited[i]:
dfs(graph, i, visited)


computers, edges = int(input()), int(input())

networks = [[] for _ in range(computers + 1)]
visited = [False] * (computers + 1)

for i in range(edges):
a, b = map(int, input().split())
networks[a].append(b)
networks[b].append(a)

dfs(networks, 1, visited)
print(visited.count(True) - 1)

소스코드_DFS(Dict)

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

sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline

computers = int(input())
edges = int(input())

networks = {}
for i in range(computers):
networks[i + 1] = set()

for i in range(edges):
a, b = map(int, input().split())
networks[a].add(b)
networks[b].add(a)


def dfs(graph, v, visited):
visited[v] = True
for i in graph[v]:
if not visited[i]:
dfs(graph, i, visited)


visited = [False] * (computers + 1)
dfs(networks, 1, visited)
print(visited.count(True) - 1)

[코드잇] 강남역 침수

[코드잇] 강남역 침수

출처: [코드잇] 강남역 침수

풀이


소스코드

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
def trapping_rain(buildings):
max_height = max(buildings)
start_point = False
current_height = 0
total = 0

for i in range(len(buildings) - 1): # 마지막은 스킵
if start_point == 0 and buildings[i] > 0:
start_point = 1
current_height = buildings[i]
else:
if buildings[i] == max_height:
continue

if buildings[i] < current_height:
total += current_height - buildings[i]
else:
current_height = buildings[i]

return total


# 테스트
print(trapping_rain([3, 0, 0, 2, 0, 4]))
print(trapping_rain([0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]))

2021년 4월 7일 수요일 IT뉴스

1. 투자하면 대박 …금융권, 핀테크 기업에 반했다

투자하면 대박 …금융권, 핀테크 기업에 반했다 : 네이버 뉴스 (naver.com)

img[이데일리 이동훈 기자]

쿠팡에 이어 두나무의 미국 증시 상장설이 솔솔 피어오르면서 핀테크 기업에 대한 지분 투자가 관심사로 떠오르고 있다. 한화투자증권, 우리기술투자 등이 두나무 상장 수혜 기대감에 연일 급등세를 이어가고 있고, 본인신용정보관리업(마이데이터) 본격화에 힘입어 기업가치가 커질 것으로 보이는 토스·뱅크샐러드 등에 투자한 업체들도 잭팟을 기대하고 있다.


2. 삼성 vs 애플, 120조 웨어러블 시장에서도 ‘격돌’

삼성 vs 애플, 120조 웨어러블 시장에서도 ‘격돌’ : 네이버 뉴스 (naver.com)

웨어러블 기기 시장이 만개하기 시작했다. /사진제공=각 사, 그래픽=김민준 기자

스마트폰 시장이 포화 상태에 이르러 성장세가 점차 둔화되면서 IT기업도 다방면으로 돌파구를 찾고 있다. 폴더블·롤러블 등과 같은 폼팩터 혁신뿐 아니라 스마트폰 기반으로 생태계를 이루는 이어폰과 워치 등 각종 기기의 영역 확장도 이뤄지고 있다.


3. 삼성SDS ‘클라우드·공정 보안’ 주목…황성우 체제 첫 대외 행사

삼성SDS ‘클라우드·공정 보안’ 주목…황성우 체제 첫 대외 행사 : 네이버 뉴스 (naver.com)

서재일 삼성SDS 보안사업부장(전무)이 6일 온라인으로 개최된 ‘사이버 시큐리티 콘퍼런스 2021’에서 환영사를 하고있다. /사진=삼성SDS

삼성SDS가 황성우 대표이사 취임 후 처음 개최한 대외행사인 이날 행사에서는 비대면 업무환경 보안과 클라우드 보안, 생산설비·제조공정(OT) 보안 등 3가지 최신 사이버 보안이 집중적으로 다뤄졌다.

삼성SDS의 보안 관련 사내벤처들의 소개도 이뤄졌으며, ‘팀나인’은 인공지능(AI)을 활용한 사진·영상·음성 합성 기술인 딥페이크를 탐지할 수 있는 솔루션을 발표했고 ‘해킹존’은 보안 취약점을 신고하고 포상하는 제도인 ‘버그바운티’ 관련 플랫폼을 발표했다.


4. ‘가상 공간에서 홀로그램 회의를?’… 스페이셜로 보는 ‘메타버스’의 현주소

‘가상 공간에서 홀로그램 회의를?’… 스페이셜로 보는 ‘메타버스’의 현주소 : 네이버 뉴스 (naver.com)

스페이셜을 통해 회의를 진행하고 있는 예시. 제공=페이스북

코로나 19라는 불가항력적인 요인으로 사무실 근무가 어려워지면서 많은 기업이 재택근무를 위한 솔루션을 도입함으로써 네트워크나 인프라를 대체하기 시작했다.

하지만, 재택근무는 대화 과정이 이메일이나 메신저로 옮겨가면서 누락되고, 여기서 오류가 발생할 수밖에 없었고,…최근에는 기술을 활용해 이 부분까지 극복하려는 조짐이 관측되고 있다.


5. 업계, “LG전자 스마트폰 철수 여파 ‘미미’”…왜? [IT클로즈업]

[업계, “LG전자 스마트폰 철수 여파 ‘미미’”…왜? IT클로즈업] : 네이버 뉴스 (naver.com)

LG전자는 “프리미엄 휴대폰 시장은 양강체제가 굳어지고 주요 경쟁사는 보급형 휴대폰 시장을 집중 공략하는 가운데 LG전자는 대응 미흡으로 성과를 내지 못해왔다”라며 “이 같은 시장 상황 속에서 선택과 집중을 통해 내부 자원을 효율화하고 경쟁우위를 확보할 수 있는 핵심사업에 역량을 집중한다”라고 설명했다.

스마트폰 사업 중단은 LG전자 실적 개선으로 이어질 전망이고, 거래선과 협력사 피해는 크지 않을 것으로 예상되며, 국내 스마트폰 점유율은 삼성전자와 애플이 양분할 것으로 여겨지지만, 현재 LG전자 스마트폰을 쓰고 있는 사람은 불편이 불가피하다.


6. 코로나로 원격수업하자 독서줄고 PC사용량 늘었다

코로나로 원격수업하자 독서줄고 PC사용량 늘었다 : 네이버 뉴스 (naver.com)

2020년 청소년의 시간대별 이용매체
[KISDI 제공. 재판매 및 DB 금지]

신종 코로나바이러스 감염증(코로나19) 확산으로 온라인 원격수업이 시작되자 청소년들의 종이 매체 이용은 줄고 PC 이용이 증가한 것으로 나타났다.

이에따라 청소년의 독서 시간도 감소했고, 데스크톱과 노트북, 태블릿PC 이용 시간은 모두 1시간 이상 증가했지만, 하루평균 스마트폰 사용시간은 162분으로 전년(143분)과 크게 차이가 없는 것으로 파악됐다.


7. 동네친구 된 IT… 중고거래서 취업까지 해결

동네친구 된 IT… 중고거래서 취업까지 해결 : 네이버 뉴스 (naver.com)

코로나 팬데믹(대유행)이 장기화되면서 좁아진 사람들의 생활 반경에 맞춘 ‘하이퍼로컬(hyper-local) 서비스’가 뜨고 있다.

하이퍼로컬의 시대가 다시 돌아온 것은 사용자 위치를 정확하게 파악해 지역 기반 맞춤형 정보를 제공하는 IT 업체들이 속속 등장하면서부터이며, 국내에선 하이퍼로컬 앱의 원조인 당근마켓에 네이버가 도전하고 있고, 유통 대기업 롯데도 동네 상권 공략을 위해 지역 기반 중고거래 사이트 ‘중고나라’를 인수했으며, 미국에서는 기업 가치 5조원이 넘는 하이퍼로컬 스타트업(초기 벤처기업)까지 등장했다.

  • 하이퍼 로컬(Hyperlocal): ‘범위가 좁은 특정 지역에 맞춘’이란 뜻. 코로나 이후 사람들의 생활 반경이 좁아져 동네 상권을 중심으로 한 서비스가 늘면서 주목받고 있는 개념으로 상거래뿐 아니라 동네 기반 온라인 커뮤니티 기능도 아우른다. 예전 ‘벼룩시장’ 같은 지역 정보지와 전단이 타깃으로 삼았던 게 하이퍼로컬 시장이다. 당시엔 사람 구하는 일, 중고거래나 중고차 매매도 모두 동네에서 해결하는 게 당연했다. 하지만 동네를 초월하는 인터넷과 전국 익일 배송 서비스가 확산하면서 급속히 사라졌다.
[백준] 3009번 네 번째 점

[백준] 3009번 네 번째 점

출처: [백준] 3009번 네 번째 점


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 16000 11461 10418 73.335%

문제

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.


입력

세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.


출력

직사각형의 네 번째 점의 좌표를 출력한다.


예제 입력 1

1
2
3
30 20
10 10
10 20

예제 출력 1

1
30 10

힌트


출처


알고리즘 분류


링크


풀이


소스코드

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

input = sys.stdin.readline

x_list = []
y_list = []

for _ in range(3):
x, y = map(int, input().split())
x_list.append(x)
y_list.append(y)

for i in range(3):
if x_list.count(x_list[i]) == 1:
x = x_list[i]
if y_list.count(y_list[i]) == 1:
y = y_list[i]

print(x, y)

[백준] 4153번 직각삼각형

[백준] 4153번 직각삼각형

출처: [백준] 4153번 직각삼각형


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 23581 12574 11416 53.629%

문제

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

img


입력

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.


출력

각 입력에 대해 직각 삼각형이 맞다면 “right”, 아니라면 “wrong”을 출력한다.


예제 입력 1

1
2
3
4
6 8 10
25 52 60
5 12 13
0 0 0

예제 출력 1

1
2
3
right
wrong
right

힌트


출처


알고리즘 분류


풀이


소스코드 1

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

input = sys.stdin.readline

while True:
edge_list = list(map(int, input().split()))
edge_list.sort()
if edge_list[0] == 0:
break
if edge_list[0] ** 2 + edge_list[1] ** 2 == edge_list[2] ** 2:
print('right')
else:
print("wrong")

소스코드 2

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

input = sys.stdin.readline

while True:
edge_list = list(map(int, input().split()))
long_edge=max(edge_list)
if long_edge == 0:
break
edge_list.remove(long_edge)
if edge_list[0] ** 2 + edge_list[1] ** 2 == long_edge ** 2:
print('right')
else:
print("wrong")

[백준] 9471번 피사노 주기

[백준] 9471번 피사노 주기

출처: [백준] 9471번 피사노 주기


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 853 602 504 75.224%

문제

1960년, IBM의 직원 Donald Wall은 피보나치 수열을 m으로 나눈 나머지가 주기를 이룬다는 것을 증명했다.

예를 들어, 피보나치 수열의 처음 10개를 11로 나눈 예는 다음과 같다.

n 1 2 3 4 5 6 7 8 9 10
F(n) 1 1 2 3 5 8 13 21 34 55
F(n) mod 11 1 1 2 3 5 8 2 10 1 0

나머지를 이용해서 만든 수열은 주기가 나타날 수 있다. k(m)을 반복하는 부분 수열의 길이라고 했을 때, k(11) = 10임을 알 수 있다.

Wall은 아래와 같은 여러 가지 성질도 증명했다.

  • m > 2인 경우에 k(m)은 짝수이다.
  • 임의의 짝수 정수 n > 2에 대해서, k(m) = n인 m이 항상 존재한다.
  • k(m) ≤ m2 - 1
  • k(2n) = 3×2(n-1)
  • k(5n) = 4×5n
  • k(2×5n) = 6n
  • n > 2라면, k(10n) = 15×10(n-1)

m이 주어졌을 때, k(m)을 구하는 프로그램을 작성하시오.


입력

첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 N과 M으로 이루어져 있다. N은 테스트 케이스의 번호이고, M은 문제에서 설명한 m이다. (2 ≤ M ≤ 1,000,000)


출력

각 테스트 케이스마다 테스트 케이스 번호를 출력하고 k(M)을 출력한다.


예제 입력 1

1
2
3
4
5
6
5
1 4
2 5
3 11
4 123456
5 987654

예제 출력 1

1
2
3
4
5
1 6
2 20
3 10
4 15456
5 332808

힌트


출처


알고리즘 분류


링크


풀이


소스코드

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

input = sys.stdin.readline

N = int(input())


def fibo(n):
if len(fibo_list) > n:
return fibo_list[n]
else:
fibo_list[n] = (fibo(n - 1) + fibo(n - 2)) % mod
return fibo_list[n]


def cycle():
x = 1
while True:
if fibo_list[x] == 0 and fibo_list[x - 1] == 1:
return x
x += 1
fibo(x)


for _ in range(N):
fibo_list = dict()
fibo_list[0] = 0
fibo_list[1] = 1
fibo_list[2] = 1
idx, mod = map(int, input().split())

print(idx, cycle())