[백준] 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 바이크를 전국 서비스로 본격 확장한다.

[백준] 2468번 안전 영역

[백준] 2468번 안전 영역

출처: [백준] 2468번 안전 영역


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 40557 15312 10254 34.415%

문제

재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다.

어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다.

img

이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물에 잠겼다고 하자. 이 경우에 물에 잠기는 지점을 회색으로 표시하면 다음과 같다.

img

물에 잠기지 않는 안전한 영역이라 함은 물에 잠기지 않는 지점들이 위, 아래, 오른쪽 혹은 왼쪽으로 인접해 있으며 그 크기가 최대인 영역을 말한다. 위의 경우에서 물에 잠기지 않는 안전한 영역은 5개가 된다(꼭짓점으로만 붙어 있는 두 지점은 인접하지 않는다고 취급한다).

또한 위와 같은 지역에서 높이가 6이하인 지점을 모두 잠기게 만드는 많은 비가 내리면 물에 잠기지 않는 안전한 영역은 아래 그림에서와 같이 네 개가 됨을 확인할 수 있다.

img

이와 같이 장마철에 내리는 비의 양에 따라서 물에 잠기지 않는 안전한 영역의 개수는 다르게 된다. 위의 예와 같은 지역에서 내리는 비의 양에 따른 모든 경우를 다 조사해 보면 물에 잠기지 않는 안전한 영역의 개수 중에서 최대인 경우는 5임을 알 수 있다.

어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 계산하는 프로그램을 작성하시오.


입력

첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N이 입력된다. N은 2 이상 100 이하의 정수이다. 둘째 줄부터 N개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보가 입력된다. 각 줄에는 각 행의 첫 번째 열부터 N번째 열까지 N개의 높이 정보를 나타내는 자연수가 빈 칸을 사이에 두고 입력된다. 높이는 1이상 100 이하의 정수이다.


출력

첫째 줄에 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다.


예제 입력 1

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

예제 출력 1

1
5

노트

아무 지역도 물에 잠기지 않을 수도 있다.


출처

Olympiad > 한국정보올림피아드 > KOI 2010 > 초등부 2번

  • 문제의 오타를 찾은 사람: apjw6112
  • 어색한 표현을 찾은 사람: jh05013
  • 잘못된 데이터를 찾은 사람: tncks0121

알고리즘 분류


풀이


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

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

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


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

if 0 <= nx < N and 0 <= ny < N and ground[nx][ny] > h and not visited[nx][ny]:
visited[nx][ny] = True
dfs(nx, ny, h)


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

result = 0
for k in range(max(max(ground))):
count = 0
visited = [[False] * N for _ in range(N)]
for i in range(N):
for j in range(N):
if ground[i][j] > k and not visited[i][j]:
count += 1
visited[i][j] = True
dfs(i, j, k)
result = max(result, count)
print(result)
[백준] 4963번 섬의 개수

[백준] 4963번 섬의 개수

출처: [백준] 4963번 섬의개수


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 30659 15375 11056 49.234%

문제

정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오.

img

한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다.

두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다.


입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다.

둘째 줄부터 h개 줄에는 지도가 주어진다. 1은 땅, 0은 바다이다.

입력의 마지막 줄에는 0이 두 개 주어진다.


출력

각 테스트 케이스에 대해서, 섬의 개수를 출력한다.


예제 입력 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
1 1
0
2 2
0 1
1 0
3 2
1 1 1
1 1 1
5 4
1 0 1 0 0
1 0 0 0 0
1 0 1 0 1
1 0 0 1 0
5 4
1 1 1 0 1
1 0 1 0 1
1 0 1 0 1
1 0 1 1 1
5 5
1 0 1 0 1
0 0 0 0 0
1 0 1 0 1
0 0 0 0 0
1 0 1 0 1
0 0

예제 출력 1

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

출처

ICPC > Regionals > Asia Pacific > Japan > Japan Domestic Contest > 2009 Japan Domestic Contest B번

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: j4bez

링크


알고리즘 분류


풀이


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

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

# 방향정의 (상,하,좌,우, 1,5,7,9)
dx = [-1, 1, 0, 0, -1, 1, 1, -1]
dy = [0, 0, -1, 1, 1, 1, -1, -1]


def dfs(x, y):
ground[x][y] = -1

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

if 0 <= nx < H and 0 <= ny < W and ground[nx][ny] == 1:
dfs(nx, ny)


while True:
W, H = map(int, input().split())
if W == 0 and H == 0:
break

ground = [list(map(int, input().split())) for _ in range(H)]

count = 0
for i in range(H):
for j in range(W):
if ground[i][j] == 1:
dfs(i, j)
count += 1
print(count)

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

1. “개인정보 관리 우려”…日정부, 네이버 자회사 라인 ‘릴레이 조사’

“개인정보 관리 우려”…日정부, 네이버 자회사 라인 릴레이 조사 - 매일경제 (mk.co.kr)

네이버 자회사 라인이 개인정보 관리에 문제가 있다는 논란이 일면서 일본 정부의 조사를 받고 있어, 일본 최대 포털업체 야후재팬과 합작회사를 출범시키며 핵심 사업 중 하나로 내세운 공공사업(B2G)에 타격이 불가피할 것이란 관측이 적지 않다.

일본 정부도 라인 플랫폼을 활용해 행정 서비스의 디지털 전환을 의욕적으로 추진해왔는데 행정 처분 등이 결정될 때까지 올스톱이 불가피하며, 당장 라인을 대체할 플랫폼을 찾기도 쉽지 않아 고민에 빠졌다.


2. 빅블러 시대…네이버·토스 등 ‘적’과 동맹 잇는 은행들

빅블러 시대…네이버·토스 등 ‘적’과 동맹 잇는 은행들 (ekn.kr)

은행들이 마이데이터 시대(본인신용정보관리업)를 앞두고 기존에 가지고 있던 금융 데이터만을 활용하기에 한계가 있어, 이종산업과 협업을 맺고 축적하는 데이터 범위를 확대하겠다는 의도로 네이버, 토스 등 빅테크(대형 IT기업)·핀테크 기업과 손을 잡으며 적과의 동맹을 이어가고 있다.

산업 간 경계가 사라지는 빅블러 시대인 만큼 금융과 이종산업 간 결합 사례는 더욱 많아질 것으로 보이며, 특히 대부분의 기업이 공통적으로 ‘디지털 플랫폼 기업’을 지향하고 있어, 다양한 분야를 아우르는 데이터를 가지는 것은 곧 경쟁력으로 여겨진다.


3. [IT큐레이션] 네이버는 지금 콘텐츠 앱 생태계를 만들고 있다

[IT큐레이션] 네이버는 지금 콘텐츠 앱 생태계를 만들고 있다 < IT/스타트업 < IT/게임 < 기사본문 - 이코노믹리뷰 (econovill.com)

네이버의 콘텐츠 확보 전략은 단순히 좋은 콘텐츠 IP를 확보해 이를 바탕으로 양질의 플랫폼 서비스를 하겠다는 일차원적 접근이 아니라 존재하는 모든 온라인과 오프라인의 활동을 콘텐츠로 인식해 말 그대로 콘텐츠 토털 생태계를 구축하고 있다. 실제로 대리운전, 게임, 메모, 미팅, 협업툴 등 세상 만물이 모두 콘텐츠가 되어 막강한 플랫폼으로 달려왔으며 구글과 애플은 이들에게 수익을 제공해 방대한 생태계를 만들어냈다.


4. 상장 채비 서두르는 카카오페이…발목 잡는 ‘차이나 리스크’ 해소될까

상장 채비 서두르는 카카오페이…발목 잡는 ‘차이나 리스크’ 해소될까 : 네이버 뉴스 (naver.com)

© 뉴스1

카카오페이는 2대주주 중국 앤트그룹의 적격성 문제에 발목 잡혀 신산업으로 주목받고 있는 마이데이터 사업 관련 일부 서비스를 중단하는 등 ‘차이나 리스크’로 사업에 차질을 빚어왔다.

그러나 최근 금융당국 내에서 카카오페이의 마이데이터 적격성 심사와 관련해 기류변화가 나타나고 있어서 최대 걸림돌이 사라질 것이라는 분위기가 지배적이고, 그동안 금융당국은 고유의 최종 결정권한을 사실상 해외 금융당국에게 맡기는 것과 다름 없다는 비난을 받아왔는데, 이같은 분위기가 반전되기 시작한 것이다.


5. “역대 최강 스펙, 성능 자신있다”…애플 신제품들 어떻길래 [종합]

[“역대 최강 스펙, 성능 자신있다”…애플 신제품들 어떻길래 종합] : 네이버 뉴스 (naver.com)

아이패드 프로/사진제공=애플

애플은 21일 오전 2시(한국시간) 미국 캘리포니아주 쿠퍼티노 애플파크 스티브잡스 극장에서 신제품 공개행사를 온라인으로 열고 태블릿 PC ‘아이패드 프로’, 일체형 데스크톱 ‘아이맥’, 무선 위치추적 장치 ‘에어태그’ 등 신제품을 다수 선보였다.

애플은 2023년까지 제조 공급망 및 제품에서 발생하는 탄소 배출량의 75%를 감축하는 한편 재활용 소재를 제품 생산에 적극 활용할 계획으로 팀쿡 애플 최고경영자(CEO)는 “매년 탄소 배출량을 100만 톤씩 줄이겠다”는 목표를 밝혔다.


6. 생각만으로 컴퓨터 사용? 성큼 다가온 미래, BCI

생각만으로 컴퓨터 사용? 성큼 다가온 미래, BCI : 네이버 뉴스 (naver.com)

생각만으로 게임을 조작하는 원숭이. 위 사진을 자세히 보면 조이스틱 선이 뽑혀있다 (출처=뉴럴링크)

테슬라 CEO 일론 머스크가 설립한 스타트업 ‘뉴럴링크’는 . 뇌에 칩을 이식한 원숭이가 생각만으로 간단한 게임을 즐기는 모습이 담긴 영상을 지난 9일 유튜브에 공개했다

지금까지 BCI가 가장 널리 연구되고 활용됐던 영역은 의료분야로 뇌 질환 예방 또는 치료하는 용도로 쓰거나 신경손상 환자 재활에 활용할 수 있으며, 가령 손상된 뇌 기능 일부를 대신하는 칩을 이식해 뇌 질환을 치료한다거나, 팔다리가 마비된 사람이 생각만으로 컴퓨터나 휠체어를 조작하는 게 가능하다.

  • BCI: 뇌-컴퓨터 인터페이스(BCI, Brain Computer Interface): 뇌와 컴퓨터가 직접 상호작용할 수 있게 하는 인터페이스