[백준] 11725번 트리의 부모 찾기

[백준] 11725번 트리의 부모 찾기

출처: [백준] 11725번 트리의 부모 찾기


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 21429 9096 6766 43.043%

문제

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.


출력

첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.


예제 입력 1

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

예제 출력 1

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

예제 입력 2

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

예제 출력 2

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

출처

  • 문제를 만든 사람: baekjoon
  • 잘못된 조건을 찾은 사람: jh05013

알고리즘 분류


풀이


소스코드_DFS

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

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

N = int(input())

trees = {}
for i in range(N):
trees[i + 1] = set()

for i in range(N - 1):
a, b = map(int, input().split())
trees[a].add(b)
trees[b].add(a)

parents = [False] * (N + 1)


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


dfs(trees, 1, parents)
for i in range(2, N + 1):
print(parents[i])

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

1. 큐냅 NAS 노린 랜섬웨어 ‘Q로커’ 사기 주의보

큐냅 NAS 노린 랜섬웨어 ‘Q로커’ 사기 주의보

큐냅 제조 NAS에 저장된 데이터를 노리는 랜섬웨어가 등장했다. (사진=큐냅)

데이터를 볼모로 몸값을 요구하는 악성코드, 랜섬웨어가 PC가 아닌 NAS(네트워크 저장장치)로 눈을 돌렸고, 특히 이달 중순 등장한 랜섬웨어인 Q로커(Qlocker)는 시놀로지, 에이수스토어(Asustor) 등과 함께 대만 내 주요 NAS 업체로 꼽히는 큐냅(QNAP) 제품을 노린다. 모든 파일의 암호화가 끝났다 해도 NAS 내부에 존재하는 로그 파일에 암호화에 쓰인 비밀번호가 남아 있기 때문에 NAS의 전원을 끄거나 재부팅해서는 안된다.


2. 네이버 ‘웨일’ 크롬 콧대 꺾을까… “3년 내 시장 석권할 것” 기염

네이버 ‘웨일’ 크롬 콧대 꺾을까… “3년 내 시장 석권할 것” 기염

네이버 웨일 웹사이트 첫 화면 캡처

네이버가 자사의 웹 브라우저 ‘웨일’을 통해 3년 안에 구글 크롬을 제치고 국내 웹브라우저 시장을 석권하겠다는 야심찬 포부를 드러냈다. 시장조사업체 스탯카운터에 따르면 지난해 12월 기준 웨일의 국내 브라우저 시장 점유율은 8.29%로 1위 크롬(52.77%)과 여전히 큰 격차를 보이고 있지만 지난해 1월 웨일이 0.12%의 점유율을 기록한 것과 비교하면 큰 성장을 이뤄냈다.


3. “애플, 차세대 ‘M2’칩 생산 들어가…올해 맥북 탑재될 수도”

“애플, 차세대 ‘M2’칩 생산 들어가…올해 맥북 탑재될 수도”

(사진=애플 로고)

애플이 자체 설계한 반도체 칩 ‘M1’을 잇는 ‘M2(또는 M1X)’가 생산에 들어간 것으로 알려졌으며, M2는 세계 반도체 파운드리(위탁생산) 1위 업체인 대만 TSMC가 맡는 것으로 전해졌다. 5나노미터플러스(N5+) 공정이 도입될 전망이고, 전작인 M1과 같이 ARM 기반 시스템온칩(SOC)으로 설계될 것으로 보인다. 앞서 애플은 인텔과 작별하고 자체 설계한 반도체 칩 M1을 공개한 바 있다.


4. ‘게임사와 다른’ 개발자 잡아라…삼성SDS·LG CNS·SK㈜C&C 연봉 인상

‘게임사와 다른’ 개발자 잡아라…삼성SDS·LG CNS·SK㈜C&C 연봉 인상

삼성SDS·LG CNS·SK㈜C&C 등 주요 대기업집단 IT서비스 3사가 올해 직원들의 연봉을 예년보다 큰 폭으로 인상한 것은 개발자 처우를 개선하자는 취지다. 하지만, IT서비스 기업과 게임사 개발자들의 업무 내용 및 개발 범위가 다르기 때문에 최근 전직원들의 연봉을 대폭 인상하거나 대규모의 자사주를 지급한 게임사나 인터넷 기업으로의 인력 유출에 대한 우려와는 거리가 멀다.


5. 20년 쌓아올린 알리바바 제국, AI 무장 新生기업에 추월당했다

20년 쌓아올린 알리바바 제국, AI 무장 新生기업에 추월당했다

중국 이커머스 업체 핀둬둬는 중국 1위 이커머스 업체 알리바바가 다양한 채널로 소비자들에게 접근하는 것과 달리 인터넷 쇼핑몰이지만 PC 홈페이지 없이 모바일 앱만 운영한다. 핀둬둬는 AI를 소비자 개개인에게 최적화하여 백화점식 배열에 익숙한 인터넷 쇼핑 이용자들에 핀둬둬의 맞춤형 서비스는 엄청난 파장을 몰고 왔으며, 창업 6년 만에 알리바바의 이용자 수를 넘어섰다.


6. AI發 ‘마의 벽’에 부딪힌 자율주행차

AI發 ‘마의 벽’에 부딪힌 자율주행차

. 세계 최고 기술을 갖춘 글로벌 기업 책임자가 실적 부진을 이유로 사퇴하는가 하면 국내 유망 스타트업이 사실상 해체 수순을 밟고 있다는 소문까지 나돌고 있으며, 업계에선 “기술 진화 속도보다 비즈니스가 과속할 때 벌어지는 불일치 현상”이란 지적이 나온다.

27일 정보기술(IT)업계에 따르면 국내 자율주행 전문 기업 포티투닷의 사업회사 퍼플엠의 서영우 대표와 최고운영책임자(COO) 등 초기 멤버 상당수가 최근 회사를 이탈했고, 세계 자율주행차 기술의 ‘쌍두마차’로 꼽히는 테슬라와 구글 등 글로벌 선두주자들이 나란히 악재를 겪고 있으며, 글로벌 업체들의 ‘운전자 없는’ 자율주행차 상용화 시기는 애초 기대했던 2021년이나 2022년이 아니라 2025년 이후로 대부분 미뤄진 것으로 알려졌다.

[백준] 1987번 알파벳

[백준] 1987번 알파벳

출처: [백준] 1987번 알파벳


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 256 MB 49798 15713 9586 29.155%

문제

세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다.

말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다.

좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다.


입력

첫째 줄에 R과 C가 빈칸을 사이에 두고 주어진다. (1 ≤ R,C ≤ 20) 둘째 줄부터 R개의 줄에 걸쳐서 보드에 적혀 있는 C개의 대문자 알파벳들이 빈칸 없이 주어진다.


출력

첫째 줄에 말이 지날 수 있는 최대의 칸 수를 출력한다.


예제 입력 1

1
2
3
2 4
CAAB
ADCB

예제 출력 1

1
3

기타 입력

1
2
3
4
3 4
ABBC
ECED
FGDH

기타 출력

1
8

출처

Olympiad > Croatian Highschool Competitions in Informatics > 2002 > Regional Competition - Juniors 3번


링크


알고리즘 분류


풀이


소스코드_DFS

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

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


def dfs(x, y, count):
global ans
ans = max(ans, count)
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < R and 0 <= ny < C and passed[board[nx][ny]] == 0:
passed[board[nx][ny]] = 1
dfs(nx, ny, count + 1)
passed[board[nx][ny]] = 0


R, C = map(int, input().split())
board = [list(map(lambda x: ord(x) - 65, input().rstrip())) for _ in range(R)]
passed = [0] * 26

ans = 1
passed[board[0][0]] = 1
dfs(0, 0, ans)

print(ans)

소스코드_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
import sys

input = sys.stdin.readline

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


def bfs():
global count
queue = set()
queue.add((0, 0, board[0][0]))

while queue:
x, y, ans = queue.pop()

for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

if 0 <= nx < R and 0 <= ny < C and board[nx][ny] not in ans:
queue.add((nx, ny, ans + board[nx][ny]))
count = max(count, len(ans) + 1)


R, C = map(int, input().split())
board = [list(input().rstrip()) for _ in range(R)]
count = 1
bfs()
print(count)

소스코드_실패(메모리 초과)

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

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

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


def dfs(x, y, cnt):
global count
count = max(cnt, count)

for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

if 0 <= nx < R and 0 <= ny < C and board[nx][ny] not in passed:
passed.append(board[nx][ny])
dfs(nx, ny, cnt + 1)
passed.append(board[nx][ny])


R, C = map(int, input().split())
board = [list(input().rstrip()) for _ in range(R)]
passed = []
count = 1
dfs(0, 0, count)
print(count)

[백준] 2644번 촌수계산

[백준] 2644번 촌수계산

출처: [백준] 2644번 촌수계산


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 20625 9485 7194 45.397%

문제

우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다.

여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오.


입력

사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진다. 그리고 셋째 줄에는 부모 자식들 간의 관계의 개수 m이 주어진다. 넷째 줄부터는 부모 자식간의 관계를 나타내는 두 번호 x,y가 각 줄에 나온다. 이때 앞에 나오는 번호 x는 뒤에 나오는 정수 y의 부모 번호를 나타낸다.

각 사람의 부모는 최대 한 명만 주어진다.


출력

입력에서 요구한 두 사람의 촌수를 나타내는 정수를 출력한다. 어떤 경우에는 두 사람의 친척 관계가 전혀 없어 촌수를 계산할 수 없을 때가 있다. 이때에는 -1을 출력해야 한다.


예제 입력 1

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

예제 출력 1

1
3

출처

Olympiad > 한국정보올림피아드 > KOI 1999 > 중등부 1번


알고리즘 분류


풀이


소스코드_DFS

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

input = sys.stdin.readline

N = int(input())
comp1, comp2 = map(int, input().split())
M = int(input())
family = {}
for i in range(N):
family[i + 1] = set()
for i in range(M):
x, y = map(int, input().split())
family[x].add(y)
family[y].add(x)



def dfs(graph, target, count):
visited[target] = count
for i in graph[target]:
if not visited[i]:
dfs(graph, i, count + 1)


visited = [False] * (N + 1)
dfs(family, comp2, 1)
if not visited[comp1]:
print(-1)
else:
print(visited[comp1] - 1)

2021년 4월 26일 월요일 IT뉴스

1. 세계 최초 국가재난안전통신 전국망 개통

세계 최초 국가재난안전통신 전국망 개통 : 네이버 뉴스 (naver.com)

KT와 SK텔레콤은 삼성전자와 함께 세계 최초로 국가재난안전통신 전국망을 개통했다고 오늘(26일) 밝혔습니다.경찰·소방·국방·철도·지방자치단체 등 8대 분야 333개 국가기관의 무선통신망이 하나로 통합됐고, 무선통신 국제표준화 기술협력 기구인 3GPP가 제정한 재난안전통신규격(PS-LTE Standard)에 맞춰 구축됐습니다.

  • 재난안전통신망은 각종 중대형 재난사고를 효율적으로 예방하고 대응하기 위해 정부 주도로 구축된 차세대 무선통신망입니다.

2. 오라클, 더 나은 세상을 위한 온라인 해커톤 개최

오라클, 더 나은 세상을 위한 온라인 해커톤 개최 : 네이버 뉴스 (naver.com)

오라클 CI

오라클은 온라인 해커톤 전문 회사인 핵메이커와 함께 스마트시티 및 지속 가능한 미래를 위한 해커톤을 개최한다고 26일 밝혔다. 이 해커톤은 주요 UN 지속가능발전목표(SDG) 관련 도전 과제 해결을 목표로, 시민 및 전문 개발자와 학생들이 창의적인 기술을 활용해 모두를 위한 보다 나은 세상을 만드는 데 기여할 새로운 아이디어와 솔루션을 고안하도록 지원한다.


3. 몸집 키우는 네이버·카카오, 직원 1만시대

몸집 키우는 네이버·카카오, 직원 1만시대 : 네이버 뉴스 (naver.com)

네이버와 카카오는 비대면 여파를 타고 쇼핑, 콘텐츠, 핀테크 등 각종 사업이 성장하면서 올해 들어서도 인재 충원 경쟁에 나섰다. 인력이 곧 생산설비와도 같은 IT기업들은 빅데이터, 인공지능(AI) 등 개발자를 비롯한 각종 분야의 인력 충원에 공격적으로 나섰다.


4. 공인인증제도 폐지됐지만··· “우리는 여전히 공인인증서 시대에 살고 있다”

공인인증제도 폐지됐지만··· “우리는 여전히 공인인증서 시대에 살고 있다” : 네이버 뉴스 (naver.com)

작년 12월 10일 공인인증제도 폐지를 골자로 하는 새 전자서명법의 시행으로 공인인증서(현 공동인증서)의 활용이 줄고 다양한 민간인증서의 활용도가 높아질 것으로 기대됐으나 파급력이 기대에 못미친다는 의견이 나오고 있다.

인증업계 관계자는 “공동인증서의 유효기간 만료 기간이 다가옴에 따라 새로운 기회가 찾아올 것이라 기대했지만 마이데이터 서비스에 공동인증서만 이용 가능하다면 다수 이용자가 공동인증서를 재발급하면서 공동인증서 만료로 인한 특수를 기대하기 어려워졌다”고 꼬집었고, 마이데이터 서비스처럼 정부가 추진하는 혁신 서비스에 차세대 인증 기술은 사용 안 되고 공동인증서만 사용 된다면 법을 개정한 취지가 퇴색되는 것”이라며 “여전히 우리는 공인인증서 시대에 살고 있다”고 부연했다.


5. 韓 70% ‘앱으로 쇼핑’…규모는 쿠팡, 대세는 당근마켓

韓 70% ‘앱으로 쇼핑’…규모는 쿠팡, 대세는 당근마켓 : 네이버 뉴스 (naver.com)

지난달 국내 모바일 쇼핑 사용자수가 전 국민의 약 70%인 3500만명을 넘어선 것으로 나타났다. 이 가운데서도 가장 높은 월간 활성 사용자수(MAU)를 기록한 곳은 ‘쿠팡’이었고, 중고거래에선 ‘당근마켓’이 독보적인 점유율을 차지했다.

자료=아이지에이웍스

[백준] 21567번 숫자의 개수2

[백준] 21567번 숫자의 개수2

출처: [백준] 21567번 숫자의 개수2


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 (추가 시간 없음) 128 MB 8 8 8 100.000%

문제

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.


입력

첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다.


출력

첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.


예제 입력 1

1
2
3
150
266
427

예제 출력 1

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

예제 입력 2

1
2
3
1
1
1

예제 출력 2

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

예제 입력 3

1
2
3
999999
999999
999999

예제 출력 3

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

출처


알고리즘 분류


소스코드

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

input = sys.stdin.readline

A = int(input())
B = int(input())
C = int(input())
product_value = A * B * C

split_num = list(str(product_value).rstrip())

num_dict = {}

for i in range(10):
num_dict[i] = 0

for num in split_num:
num_dict[int(num)] += 1

for i in range(10):
print(num_dict[i])

[백준] 10026번 적록색약

[백준] 10026번 적록색약

출처: [백준] 10026번 적록색약


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 19449 11275 8904 58.025%

문제

적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다.

크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 색상이라 한다)

예를 들어, 그림이 아래와 같은 경우에

1
2
3
4
5
RRRBB
GGBBB
BBBRR
BBRRR
RRRRR

적록색약이 아닌 사람이 봤을 때 구역의 수는 총 4개이다. (빨강 2, 파랑 1, 초록 1) 하지만, 적록색약인 사람은 구역을 3개 볼 수 있다. (빨강-초록 2, 파랑 1)

그림이 입력으로 주어졌을 때, 적록색약인 사람이 봤을 때와 아닌 사람이 봤을 때 구역의 수를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 N이 주어진다. (1 ≤ N ≤ 100)

둘째 줄부터 N개 줄에는 그림이 주어진다.


출력

적록색약이 아닌 사람이 봤을 때의 구역의 개수와 적록색약인 사람이 봤을 때의 구역의 수를 공백으로 구분해 출력한다.


예제 입력 1

1
2
3
4
5
6
5
RRRBB
GGBBB
BBBRR
BBRRR
RRRRR

예제 출력 1

1
4 3

출처

Olympiad > USA Computing Olympiad > 2013-2014 Season > USACO March 2014 Contest > Bronze 3번

  • 문제를 번역한 사람: baekjoon
  • 어색한 표현을 찾은 사람: corea

알고리즘 분류


풀이


소스코드_DFS

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

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

# 방향정의
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]


def dfs(matrix, x, y, value):
matrix[x][y] = 0
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

if 0 <= nx < N and 0 <= ny < N:
if matrix[nx][ny] == value:
dfs(matrix, nx, ny, value)


N = int(input())
grid = [list(input().rstrip()) for _ in range(N)] # people(R,G,B)
grid2 = [[0] * N for _ in range(N)] # people(R=G, B)

for i in range(N):
for j in range(N):
if grid[i][j] == 'R' or grid[i][j] == 'G':
grid2[i][j] = 1
else:
grid2[i][j] = 2

rgb_count = 0
b_count = 0
for i in range(N):
for j in range(N):
if grid[i][j] != 0:
dfs(grid, i, j, grid[i][j])
rgb_count += 1

if grid2[i][j] != 0:
dfs(grid2, i, j, grid2[i][j])
b_count += 1

print(rgb_count, b_count)

2021년 4월 24일 토요일 주간 IT 뉴스 - 클라우드 게임"

개요

요즘 코인열풍이 불고 있다. 그 와중에 중국에서는 거대한 암호화폐 채굴장을 만들어 채굴사업을 한다는 이야기도 있다. 채굴기에 필요한 고성능의 그래픽카드가 이곳에 쓰이고, 이 때문에 고성능 게임을 위해 그래픽카드를 구매하려고하는 게이머들의 슬픈 이야기도 들리기도 한다. 내 주변에서도 이번에 컴퓨터를 새로 구매하는데 그래픽카드가 너무 비싸 망설여진다고 하는 사람이 있었다.


천장 뚫는 그래픽 카드 값에··· 클라우드 게임에 눈 돌리는 게이머

게임 ‘포트나이트’ 이용자 이모(35)씨는 지난 달 그래픽 카드(GPU)를 교체하려다 비싼 가격에 깜짝 놀랐다. 지난해 60만 원 가량이었던 엔비디아의 RTX 3070이 160만 원대까지 올랐기 때문이다. 울며 겨자먹기로 구매하려고 해도 물건이 없어 어려움을 겪던 차에 클라우드 플랫폼 ‘지포스 나우’를 통해 게임을 즐길 수 있다는 이야기를 듣고 클라우드 게임으로 갈아탔다.

전세계적으로 반도체 품귀 현상이 장기화되고 가상화폐 채굴 열풍으로 인한 사재기가 벌어지면서 PC의 성능을 좌우하는 그래픽 카드 칩셋(GPU) 가격이 천정부지로 올라가고 있다. 이에 등골이 휜 게임 이용자들이 기기의 성능이 낮아도 얼마든지 게임을 즐길 수 있는 클라우드 게임 시장으로 눈길을 돌리고 있다.

22일 업계에 따르면 올 들어 그래픽 카드 칩셋 가격이 매달 평균 20%이상 상승하며 게임 이용자들을 곤혹스럽게 하고 있다. 용량이 큰 대규모 다중접속역할게임(MMORPG)을 끊김 없이 즐기려면 고성능 그래픽카드를 필요한데 가격이 상한선 없이 올라가고 있기 때문이다. 대표적인 칩셋 공급사인 엔비디아의 RTX3080의 경우 지난 2월에만 해도 155만 원에 구매할 수 있었지만 한 달만인 지난 달 둘째주에는 220만 원으로 41%가 뛰었다. RTX3090은 같은 기간 252만 원에서 300만 원대로 올라갔다.

문제는 이 같은 돈 주고도 GPU를 구하기가 힘들다는 것이다. 가상화폐 채굴 열풍으로 대규모 GPU 사재기가 벌어졌기 때문이다. 비트코인 채굴 업체인 라이엇 블록체인은 이달 초 채굴기 4만 2,000대를 구매하는 계약을 체결했다고 밝혔다. 다나와 관계자는 “암호화폐 채굴 열풍으로 최근 그래픽카드의 수요·공급에 불균형이 커졌다”며 “고사양 그래픽 카드를 구하기 힘들다보니 게임 이용자들 사이에서는 상대적으로 가격 등락폭이 적은 GTX 1660 등 이전 시리즈 칩셋 인기가 높아지고 있다”고 설명했다.

고사양 그래픽 카드를 구하기 힘들어진 유저들은 발 빠르게 클라우드 게임으로 이동하고 있다. 클라우드 게임은 플랫폼 자체에서 PC게임을 이용할 수 있어 기기의 사양이나 종류에 상관 없이 고사양 그래픽을 구현할 수 있다. 게임 서버만 마련해 두면 시간·장소·기기에 상관없이 게임을 끊김 없이 즐길 수 있다. 특히 몇 시간씩 걸리는 게임 다운로드나 수시로 진행하는 업데이트 등을 사용자가 직접 하지 않아도 언제든 이용할 수 있다. 실제 클라우드 게임 시장은 빠르게 성장하고 있다. 글로벌 시장 조사 업체 뉴주는 클라우드 게임 시장이 올해 14억 달러(1조5,634억 원), 오는 2023년 51억4,000만 달러(5조7,413억 원)로 커질 것으로 내다봤다. 업계 관계자는 “그래픽 카드를 주기적으로 교체해줘야 하는 부담에 클라우드 게임으로 넘어오는 이용자가 꾸준히 늘어나고 있다”며 “최근에는 클라우드 게임의 지연(Latency) 문제가 획기적으로 개선되면서 그 흐름이 더 빨라지고 있다”고 전했다.

——-이하 생략

지포스나우로 클라우드 게임을 할 수 있다라는 소식은 꽤 오래전부터 알고 있었다. 하지만 그 땐 사람들이 얼마나 사용할까? 라고 생각만 했다.

클라우드 컴퓨팅 수업을 들으면서 fat/thin client 관련된 내용에서 서버단에서 모든 기능이 돌아가고 클라이언트에는 그냥 가볍게 볼 수 있는 개념을 듣고, 클라우드 게임도 이런 것이겠구나라고 생각했다.

[백준] 2583번 영역 구하기

[백준] 2583번 영역 구하기

출처: [백준] 2583번 영역 구하기


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 21003 11698 9290 56.702%

문제

눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다.

예를 들어 M=5, N=7 인 모눈종이 위에 <그림 1>과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 <그림 2>와 같이 3개의 분리된 영역으로 나누어지게 된다.

img

<그림 2>와 같이 분리된 세 영역의 넓이는 각각 1, 7, 13이 된다.

M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다.


출력

첫째 줄에 분리되어 나누어지는 영역의 개수를 출력한다. 둘째 줄에는 각 영역의 넓이를 오름차순으로 정렬하여 빈칸을 사이에 두고 출력한다.


예제 입력 1

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

예제 출력 1

1
2
3
1 7 13

출처

Olympiad > 한국정보올림피아드 > 한국정보올림피아드시․도지역본선 > 지역본선 2006 > 고등부 2번


알고리즘 분류


풀이


소스코드_DFS

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

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

# 방향정의
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]


def dfs(x, y, count):
ground[x][y] = 1
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]

if 0 <= nx < M and 0 <= ny < N:
if ground[nx][ny] == 0:
count = dfs(nx, ny, count + 1)
return count


M, N, K = map(int, input().split())
ground = [[0] * N for _ in range(M)]

for _ in range(K):
x1, y1, x2, y2 = map(int, input().split())

for i in range(y1, y2):
for j in range(x1, x2):
ground[i][j] = 1

count = []
for i in range(M):
for j in range(N):
if ground[i][j] == 0:
count.append(dfs(i, j, 1))

print(len(count))
for x in sorted(count):
print(x, end=" ")

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

1. 천장 뚫는 그래픽 카드 값에··· 클라우드 게임에 눈 돌리는 게이머

천장 뚫는 그래픽 카드 값에··· 클라우드 게임에 눈 돌리는 게이머 : 네이버 뉴스 (naver.com)

전세계적으로 반도체 품귀 현상이 장기화되고 가상화폐 채굴 열풍으로 인한 사재기가 벌어지면서 PC의 성능을 좌우하는 그래픽 카드 칩셋(GPU) 가격이 천정부지로 올라가고 있다. 고사양 그래픽 카드를 구하기 힘들어진 유저들은 발 빠르게 클라우드 게임으로 이동하고 있다.

  • 클라우드 게임은 게임 서버만 마련해 두면 시간·장소·기기에 상관없이 플랫폼 자체에서 PC게임을 이용할 수 있어 기기의 사양이나 종류에 상관 없이 고사양 그래픽을 구현할 수 있다.

2. 넷플릭스 단독 계약였는데… 손 잡은 소니픽처스-디즈니, 조건은 18개월 후 개봉?

넷플릭스 단독 계약였는데… 손 잡은 소니픽처스-디즈니, 조건은 18개월 후 개봉? : 네이버 뉴스 (naver.com)

온라인 동영상서비스(OTT) 디즈니플러스가 내년 개봉되는 소니픽처스 엔터테인먼트(SPE) 콘텐츠들에 대한 방영권을 확보했다고 밝혔다. /사진=로이터

21일(현지시각) 소니픽처스 엔터테인먼트(SPE)와 디즈니는 ‘영화 스트리밍 계약’을 체결했다고 밝혔다. SPE가 제작한 영화를 극장에서 먼저 개봉하고 나면 디즈니플러스를 비롯, 훌루 등 디즈니계열 플랫폼에 방영하는 방식이다.


3. NHN, 데이터 기술 전문법인 ‘NHN DATA’ 설립

NHN, 데이터 기술 전문법인 ‘NHN DATA’ 설립 : 네이버 뉴스 (naver.com)

NHN(대표 정우진)은 오는 5월 1일 데이터 기술 전문 기업 ‘NHN DATA(NHN데이터)’를 공식 출범한다고 22일 밝혔다. NHN데이터는 NHN의 데이터 기술력이 집약된 데이터 통합 관리 솔루션 ‘다이티(Dighty)’로 국내외 CDP 시장을 공략하는 동시에 인공지능(AI) 기술로 증강 분석 및 비즈니스 전략 수립을 지원하는 신규 라인업을 선보일 예정이다.

  • CDP는 다양한 채널에서 수집되는 고객 데이터를 한 곳에서 통합 관리·분석할 수 있는 플랫폼이다.

4. [다가온 마이데이터 시대]④ 금융권 vs 빅테크 패권 전쟁 점화

[다가온 마이데이터 시대]④ 금융권 vs 빅테크 패권 전쟁 점화

img
© News1 최수아 디자이너

금융권과 통신, 유통 등 비금융권과의 조합. 언뜻 봐선 관련성을 찾기가 힘들지만 이들은 ‘마이데이터 동맹’으로 뭉쳤다. 금융권이 외부와의 협업에 적극적일 수밖에 없는 이유는 마이데이터 시대의 성패가 데이터의 질과 양에 달려있다고 해도 과언이 아니기 때문이다.


5. 애플 vs 페북 갈등 격화…”아이메시지 강화로 왓츠앱과 경쟁”

애플 vs 페북 갈등 격화…”아이메시지 강화로 왓츠앱과 경쟁” : 네이버 뉴스 (naver.com)

블룸버그 통신은 22일(현지시간) 익명의 관계자 말을 인용해 “‘아이메시지’(iMessage)를 업그레이드하는 작업이 초기 단계이지만 궁극적으로는 아이메시지가 소셜네트워크서비스(SNS)처럼 작동하고 페이스북의 메신저인 ‘왓츠앱’과 더 잘 경쟁하도록 하는 것이 목표”라고 전했다.

현재 애플과 페이스북은 현재 ‘표적 광고’를 두고 첨예한 갈등을 빚고 있고, 이런 검색·이용 기록 추적을 통해 표적 광고를 보내온 페이스북과 앱 개발자들은 이 조치가 표적 광고를 통해 소비자를 찾고 상품·서비스를 광고해오던 수백만 소상공인에게 타격을 입힐 것이라고 비판하고 있다.


6. 카카오 전기자전거, 대구·부산·광주·대전 4개 광역시로 확대

카카오 전기자전거, 대구·부산·광주·대전 4개 광역시로 확대 : 네이버 뉴스 (naver.com)

img

카카오 T 바이크는 자동차나 지하철, 버스 등 대중교통이 닿지 않는 중·단거리 이동에 효과적인 이동 수단으로, 일반 자전거와 달리 전기 모터를 탑재한 PAS(Pedal Assist System) 방식으로 남녀노소 누구나 더욱 편리하게 이용 가능하다. 카카오모빌리티는 올 상반기 대구·부산·광주·대전 4개 광역시 진출을 통해 카카오 T 바이크를 전국 서비스로 본격 확장한다.