2021년 4월 3일 토요일 주간 IT 뉴스 - IT업계 노동조합 형성 움직임 "

개요

이번 한 주 IT뉴스 정리의 주제는 최근 IT업계들이 노동조합. 노조를 형성하는 움직임이 보이는 것에 대해 기사와 관련된 내용 정리와 나의 생각을 간략히 적어보았다. 2021년 3월 31일 수요일 IT뉴스

추가적으로 우리나라의 주요 노동조합은 특정 정치적 성향을 띄고 있다. 그렇기 때문에 이번 주제에 대해 매우 심도있게 생각하면 글에 정치적 성향이 묻어나올 수 있기 때문에 정치적 성향을 완전히 빼고 학생, 취준생 입장에서 바라보는 것들 위주로 적을 것이다. (모두의 생각을 존중하자구~)


IT업계의 노동조합 왜 이슈?

일반적으로 노동조합은 회사에 기여한다기 보다는 근로자의 근무환경과 복지를 좋게 하는 것에 목적이 있다고 보면 된다.

IT부문은 업의 특성상 노조가 별로 없었다. 크게 세가지 정도의 이유를 뽑자면,

  1. IT업계 특유의 개인주의적 성향

    민주노총 관계자는 “IT업종 종사자들 스스로 벤처 기업문화가 일반 기업과 다르다는 인식을 하고 있어 노조에 대한 관심이 상대적으로 적다”라고 지적한다. 상당수의 노동자들이 조직적 협력보다는 개별 경쟁으로 임금 및 처우개선을 추구하는 전략을 채택하고 있다.

    • 하청업체에서 근무할 바에 내가 직접 따서 일하고 만다는 인식때문에 프리랜서가 많음
    • 대부분 계약에서 팀 단위로 지정된 프로젝트 장소로 파견돼 업무 수행
    • 고용안정성이 낮아 이직이 잦고, 노조가입에 대한 인식이 낮음
    • 다수의 근로자들이 본인을 자영업자나 준전문직으로 인식하고 있어 단체가 아닌 개별적으로 연봉과 직업 환경을 이직을 통해 바꾸려 하는 태도를 가지고 있음
  2. 좋은 근무 환경

    일반적으로 높은 수준의 임금, 잘 갖춰진 복지, 사측과의 원활한 의사소통과 직원 의사 반영이 잘 되면 노조가 잘 안생긴고 생각하며, 노조는 임금이든 뭐든 직원들의 불만을 가질 때 생긴다. 자유로운 근무환경도 영향을 미친다. 대외적으로 IT업계는 창의성을 높이고, 생산성을 높이고, 실용적이고 효율적이고, 합리적인 조직문화 어쩌구 하면서 대내외적으로 좋은 문화를 갖추기 위해 노력하는 모습을 보여주려는 기업이 많다.

  3. 건설업과 비슷한 업무 구조

    건설은 원청에서 발주를 하면 하청을 받고, 또 그 업체가 하청을 주고, 그 업체가 또 하청을 준다. 인력시장의 노가다꾼들이 이렇게 만들어진 공사판으로 간다. 새벽같이 나와서 하루벌어 일당 챙겨가는 사람에게는 소속이 없고, 그래서 소속감도 없다.

    개발자도도 비슷하다. 소위 SI라고 불리는 산업에 종사하는 개발자들은 다단계 하도급의 구조에서 근무하고 있다. 차이점이 있다면 더울 때 시원한 곳에서, 추울때 따듯한 곳에서 책상 앞에 앉아 일한다는 것. 하지만 일거리 자체는 어쨌거나 무언가를 만들고, 유지하고 보수하는 일이다. 그 재료가 시멘트나 벽돌이 아니고 도구가 삽이 아닐 뿐이다. 생각해서 구조를 짜고, 키보드로 열심히 빌딩하지만 형태적으로는 유사한 측면이 있다.

    회사에 오래 붙어있어야 소속감이라는 것도 생긴다. 노조도 회사에 애정이 있어야 한다. 파편으로 쪼개져 힘들게 일만하고 있는 상황, 사측에 대항하는 ‘우리’가 흐릿하게 느껴지는 상황이라면 탈출이 훨씬 빠른 방법이다.

출처

이렇게, ‘3N’이라 불리는 국내 톱3 게임사 넥슨·넷마블·엔씨소프트만 하더라도 임직원들의 평균 근속년수가 4~6년에 불과할 정도로 이직이 잦아 똘똘뭉쳐 노조를 만들 동력이 적었다. 판교에 있는 IT 기업들은 대체로 규모가 작거나 회사 역사가 오래되지 않아서 노조가 만들어지기 어려운 측면도 있었다. 2018년에서야 주 52시간 근무제가 도입되면서 ‘판교의 등대’라 불릴 정도로 야근이 많았던 기업들 중심으로 ‘노조 붐’이 일었지만 네이버·카카오·넥슨·안랩·스마일게이트·엑스엘게임즈 등 노조가 실제 설립된 곳은 손으로 꼽을 정도였다.


IT업계의 노동조합 설립 봄바람

img

- 전국민주노동조합총연맹(민주노총)

정보기술(IT) 업계에 노동조합 설립 봄바람이 불고 있다. 코로나19 사태가 ‘IT업계 호황→개발자 부족→연봉 인상→연봉·성과급 충분치 않은 직원 불만 토로’를 촉발했는데 이것이 이제는 노조 설립으로까지 이어지는 것이다. 봄바람처럼 살살 불기 시작한 노조 설립 기조가 강풍으로 변하고 있다.

30일 업계에 따르면 중견 게임회사인 ‘웹젠’ 일부 직원들이 노조 설립을 준비하고 있다. 웹젠은 최근 임직원들의 평균 연봉을 2000만원씩 올렸는데 이것이 일부 개발자나 퍼블리싱(게임 유통) 사업부에 집중되면서 내부 불만이 생겼다. 웹젠의 한 직원은 “주변에서는 연봉이 2000만원이나 올랐느냐며 부러워하는데 실제로는 그렇지 않아서 괴롭다”고 말했다.

즉, 언론을 통해 나온 정보와 실제는 다르다는 것이다. 위에 직원이 한 말처럼 일부 직원들은 주변사람들이 대수롭지 않게, 부러워하며 말하는 것들이 스트레스가 될 수도 있을 것같다.

이에 앞서 지난 25일에는 ‘카카오뱅크’에 인터넷은행 최초로 노조가 설립됐고, 지난 23일 소프트웨어 업체 ‘한글과컴퓨터’에도 2004년 해산된 이후 17년 만에 노조가 재설립됐다는 소식이 알려졌다. LG전자에서도 지난달 25일 사무직 중심의 제3노조가 만들어져 3000명이 넘는 조합원을 모았다.

하지만 지난해 IT 업체들이 호황을 맞았음에도 성과급 분배와 연봉 인상에 있어서 불합리한 대우를 받았다고 생각한 직원들을 중심으로 노조를 설립하자는 움직임이 일어났다. SK텔레콤이나 SK하이닉스 등의 대기업에서도 성과급 논란이 있었지만 결국 노조가 앞장서서 회사와 싸우니 어느 정도 추가 보상을 얻어냈던 것도 이번 노조 설립 바람에 영향을 미쳤다.

업계 관계자는 “모처럼의 기회를 놓치면 안 된다는 분위기가 팽배하기 때문에 노조 설립 소식이 계속될 것”이라고 말했다.

실제 위 기사에 아래와 같은 댓글이 있다.

“IT근로자들 매트릭스 영화의 인간 배터리처럼 일한다.드라마의 스마트한 개발자를 연상하면 안된다…대다수는 일명 코딩삽진을한다, 발추처 한마디, 또는 책임자, 총괄의 단 몇마디에 애버랜드를 제주도에 만들었다가 부산으로 옮기는 심정으로 코딩 삽질을 한다. … 시간으로 보나 스트레스, 업무강도 등을 볼때 대다수의 개발자들이 혹사당하고 있다. 또한 소규모 벤처나 스타트업들이 장미빛 미래를 이야기하며. 열정페이를 종용한다…. 하지만 성공했을때 제 2의 도약을 빌미로 약속은 또 미루어지고, 개발자는 지쳐서 떨어져나간다”

출처

내가 IT 관련 분야에 관심을 가진지 중2 때부터…. 벌써 10년째이다. 10년 동안 이 분야 내에서도 관심을 가지고 좋아했던 건 여러 번 바뀌었다. 그래도 ‘IT업계? 에서 일할 거야’라는 생각으로 지금까지 왔고, 이제 곧 졸업을 앞두고 취업 준비를 하고 있다. 여러 번의 아르바이트와 군대 내에서 일을 하다 보면 조직 전체와 직원들은 언제나 마찰이 있었다. 하지만 어차피 애착도 별로 없고 지나갈 일이라는 생각하며 내 몸만 지켰다. 그런데 10년 동안 좋아하던 분야로 취업을 하여 일을 했을 때, 내 생각은 어떻게 변할까? 지금 생각은 내가 좋아하는 기업에 들어간다면 뼈를 묻겠다는 심정으로 일할 것 같은데…
남들이 보기에 어찌 됐든, 나는 내가 원하는 기업에 들어가 일할 수 있으면 좋을 것 같다.
고등학생 땐, 대학에 들어가면 만족할 줄 알았지…
군인일 땐, 전역하면 편할 줄 알았지..
지금은 취업만 하면 다 될 것 같다…….

어찌 되었든 노동조합이 형성되는 분위기인데, 어느 조직이든 한쪽에서 일방적으로 의견을 쏟아내지 말고 상대의 의견을 서로 경청하면 이미 잘하고 있는 IT업계 분위기에 악영향은 없을 것 같다.

!!![백준] 11401번 이항 계수3

!!![백준] 11401번 이항 계수3

출처: [백준] 11401번 이항 계수3


문제

자연수 N과 정수 K가 주어졌을 때 이항 계수를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 4,000,000, 0 ≤ K ≤ N)


출력

를 1,000,000,007로 나눈 나머지를 출력한다.


예제 입력 1

1
5 2

예제 출력 1

1
10

힌트

  • 페르마의 소정리 이용

출처


알고리즘 분류


시간 제한


풀이


소스코드 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
27
28
29
30
31
32
33
34
35
36
37
38
39
import sys

input = sys.stdin.readline

N, K = map(int, input().split())
mod = 1000000007


def power(a, b):
if b == 0:
return 1
else:
if b % 2 == 0: # B가 짝수일 때
return (power(a, b // 2) ** 2) % mod
else:
return (power(a, b // 2) ** 2 * a) % mod


# Factorial dp
fact = [1 for _ in range(N + 1)]

for i in range(2, N + 1):
fact[i] = fact[i - 1] * i % mod

child = fact[N]
parent = (fact[K] * fact[N - K]) % mod

# 페르마의 소정리
print((child % mod) * (power(parent, mod - 2) % mod) % mod)

# -------------------------------------------------
# for i in range(2, N + 1):
# fact[i] = fact[i - 1] * i
#
# child = fact[N]
# parent = fact[K] * fact[N - K]

# print(int(child / parent) % mod) ==> 메모리초과

[백준] 1629번 곱셈

[백준] 1629번 곱셈

출처: [백준] 1629번 곱셈


문제

자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.


출력

첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다.


예제 입력 1

1
10 11 12

예제 출력 1

1
4

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드 1

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

input = sys.stdin.readline


def power(a, b):
if b == 1:
return a % C
else:
if b % 2 == 0: # B가 짝수일 때
return power(a, b // 2) ** 2 % C
else:
return power(a, b // 2) ** 2 * a % C


A, B, C = map(int, input().split())
print(power(A, B))

소스코드 2

1
2
3
4
5
6
7
import sys

input = sys.stdin.readline

A, B, C = map(int, input().split())
print(pow(A, B, C))

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

1. 한성숙 “네이버도 정기구독·당일배송 준비”…이커머스 1등 굳힌다

한성숙 “네이버도 정기구독·당일배송 준비”…이커머스 1등 굳힌다 : 네이버 뉴스 (naver.com)

네이버가 상품 정기구독 서비스와 함께 생필품·신선식품 당일·익일 배송 서비스 등을 올해 출시할 계획으로 지분 맞교환으로 혈맹을 다진 CJ대한통운·이마트와의 물류·유통 협력 시너지가 구체화 됐다. 됐다.

한성숙 대표는 “네이버는 이용자·판매자·파트너와 함께 성장하는 이커머스 시장 리더로서 지난해 거래액 28조원을 달성하며 국내 이커머스 1위 지위를 공고히 했다”며 “커머스 사업을 지속 선도하기 위해 5가지 방향에서 계속 앞서 나가겠다”고 짚었다.

  • 5가지 방향은 ▲판매자 솔루션 강화 ▲다양한 구매 방식 지원 ▲멤버십을 통한 파트너십 생태계 확대 ▲데이터 기반 온디맨드 풀필먼트 구축 ▲글로벌 진출이다.

2. 구글, 카카오모빌리티에 투자…빅테크 전쟁 시작됐다

구글, 카카오모빌리티에 투자…빅테크 전쟁 시작됐다 : 네이버 뉴스 (naver.com)

img

카카오모빌리티 투자유치 현황. 그래픽=김영옥 기자 [email protected]

카카오모빌리티의 전략적 투자 유치는 이번이 처음이며, 이전까지 유치한 7200억원은 자금이 필요해 받은 투자라면, 이번엔 돈 보단 협업 목적이 강하다.

카카오모빌리티는 구글과 클라우드 기반 인공지능(AI) 기술을 고도화하고, 클라우드 사물인터넷 관련 포괄적 협력을 추진하겠다고 밝혔으며, 사용자 경험 향상을 위해 다양한 OS(운영체제) 소프트웨어에 대한 협업도 추진하지만 시장에선 다른 협업 가능성도 거론된다.


3. 패션 업계, AI·테크 만나면 어떤 변화 맞이할까?

패션 업계, AI·테크 만나면 어떤 변화 맞이할까? - 코딩월드뉴스 (codingworldnews.com)

세계 최대 산업 중 하나로 언급되는 패션 산업과 테크 산업. 언뜻 보았을 때, 전혀 관계가 없는 분야처럼 보이지만, 미국 유력 경제지 포브스는 인공지능(AI)과 테크가 패션 업계를 180도 바꿀 수 있다고 주장한다.

포브스가 예측한 AI·테크가 패션 업계에 가져올 변화 세 가지를 아래와 같이 설명한다.

1. 머신러닝, 패션 업계 동향 예측한다
2. 디지털 모델, 최신 패션 상품 라인 착용
3. 미래 패션 업계 및 고객 쇼핑 경험의 변화


4. LG전자, 5일 이사회 개최… 스마트폰 사업 철수 가닥

LG전자, 5일 이사회 개최… 스마트폰 사업 철수 가닥 : 네이버 뉴스 (naver.com)

img

LG전자 여의도 본사 전경. /연합뉴스

1일 업계에 따르면, LG전자는 5일 오전 이사회를 열고 모바일(MC)사업본부의 사업 철수를 결정, 발표할 예정인 것으로 알려졌으며, 이에 따라 MC사업본부에 있는 직원 3700여명이 타 부서로 재배치될 것으로 전해졌고, 인위적인 구조조정은 없을 것이란 게 회사 측 방침이다.

“이미 지난 1월 LG전자가 스마트폰 사업을 접을 수 있다는 점을 공식화했고, 해당 부서 직원들의 사기가 꺾이고 모든 관련 사업이 중단돼 있는 상황이다”라며 “매각이 완료될 때까지 3000~4000명이나 되는 직원을 모두 끌고 가는 것은 엄청난 비용인 만큼 향후 부분 매각 등 가능성을 염두에 두고 핵심 인력, 지식재산권(IP) 정도만 남겨두고 사업본부를 정리할 것으로 추정된다”라고 했다.


5. ARM, 차세대 아키텍처 ‘Armv9’ 공개

ARM, 차세대 아키텍처 ‘Armv9’ 공개 : 네이버 뉴스 (naver.com)

ARM이 인공지능(AI)·디지털신호처리(DSP)·보안 성능을 강화한 차세대 아키텍처 ‘Armv9’을 공개했고, 코로나19 대확산으로 산업 전반에서 디지털 전환(DT)이 가속하는 가운데 반도체 설계자산(IP)을 앞세워 시장 지배력을 높이겠다는 뜻으로 풀이된다.

img

(자료=ARM)

Armv9은 슈퍼컴퓨터용 명령어 세트인 ‘스케일러블 벡터 익스텐션2(SVE2)’을 지원해 Armv8 아키텍처 보다 빠른 머신러닝(ML)과 DSP 성능을 구현하며, 보안 성능 역시 강화됐다.


6. ‘IPO 大魚’ 크래프톤 최대주주 노리는 텐센트…“상장 과실은 中 기업에”

‘IPO 大魚’ 크래프톤 최대주주 노리는 텐센트…“상장 과실은 中 기업에” : 네이버 뉴스 (naver.com)

중국 최대 게임 회사인 텐센트가 최대주주에 버금가는 지배력을 갖고 있기 때문에 상장을 앞둔 크래프톤에 ‘차이나 리스크’가 커지고 있다.

최근 중국과 분쟁을 겪고 있는 나라가 늘고 있어 향후 성장성이 중요한 기업공개(IPO)에 악재로 작용할 가능성이 크다는 우려가 나오며, 투자은행(IB)업계 한 관계자는 “이미 인도에서 중국과의 갈등으로 곤욕을 겪었고, 미·중 무역분쟁이 장기화하는 상황에서 크래프톤과 텐센트의 관계는 북미 시장 진출 등 향후 사업에 있어 큰 걸림돌이 될 수 있다”고 했다.


[백준] 1780번 종이의 개수

[백준] 1780번 종이의 개수

출처: [백준] 1780번 종이의 개수


문제

N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다.

  1. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다.
  2. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다.

이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성하시오.입력

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다.


입력

첫째 줄에 N(1 ≤ N ≤ 37, N은 3k 꼴)이 주어진다. 다음 N개의 줄에는 N개의 정수로 행렬이 주어진다.


출력

첫째 줄에 -1로만 채워진 종이의 개수를, 둘째 줄에 0으로만 채워진 종이의 개수를, 셋째 줄에 1로만 채워진 종이의 개수를 출력한다.


예제 입력 1

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

예제 출력 1

1
2
3
10
12
11

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

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

input = sys.stdin.readline

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


def check_same(x, y, d):
paper = paper_list[x][y]
for i in range(x, x + d):
for j in range(y, y + d):
if paper_list[i][j] != paper:
return False
return True


def solution(x, y, d):
if check_same(x, y, d):
if paper_list[x][y] == 1:
result.append(1)
elif paper_list[x][y] == 0:
result.append(0)
elif paper_list[x][y] == -1:
result.append(-1)
else:
d //= 3
solution(x, y, d)
solution(x + d, y, d)
solution(x + 2 * d, y, d)

solution(x, y + d, d)
solution(x + d, y + d, d)
solution(x + 2 * d, y + d, d)

solution(x, y + 2 * d, d)
solution(x + d, y + 2 * d, d)
solution(x + 2 * d, y + 2 * d, d)


solution(0, 0, N)
print(result.count(-1))
print(result.count(0))
print(result.count(1))

[백준] 1992번 쿼드트리

[백준] 1992번 쿼드트리

출처: [백준] 1992번 쿼드트리


문제

흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다.

주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 “0”이 되고, 모두 1로만 되어 있으면 압축 결과는 “1”이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다

img

위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이 영상을 쿼드 트리 구조를 이용하여 압축하면 “(0(0011)(0(0111)01)1)“로 표현된다. N ×N 크기의 영상이 주어질 때, 이 영상을 압축한 결과를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다.


출력

영상을 압축한 결과를 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
8
11110000
11110000
00011100
00011100
11110000
11110000
11110011
11110011

예제 출력 1

1
((110(0101))(0010)1(0001))

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

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

input = sys.stdin.readline

N = int(input())

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

result = []


def check_same(x, y, d):
pixel = pixel_list[x][y]
for i in range(x, x + d):
for j in range(y, y + d):
if pixel_list[i][j] != pixel:
return False
return True


def solution(x, y, d):
if check_same(x, y, d):
if pixel_list[x][y]:
result.append(1)
else:
result.append(0)
else:
d //= 2
result.append('(')
solution(x, y, d)
solution(x, y + d, d)
solution(x + d, y, d)
solution(x + d, y + d, d)
result.append(')')


solution(0, 0, N)
for x in result:
print(x, end="")

[백준] 2630번 색종이 만들기

[백준] 2630번 색종이 만들기

출처: [백준] 2630번 색종이 만들기


문제

아래 <그림 1>과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다.

img

전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다.

전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 <그림 2>의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크기의 네 개의 색종이로 나눈다. 이와 같은 과정을 잘라진 종이가 모두 하얀색 또는 모두 파란색으로 칠해져 있거나, 하나의 정사각형 칸이 되어 더 이상 자를 수 없을 때까지 반복한다.

위와 같은 규칙에 따라 잘랐을 때 <그림 3>은 <그림 1>의 종이를 처음 나눈 후의 상태를, <그림 4>는 두 번째 나눈 후의 상태를, <그림 5>는 최종적으로 만들어진 다양한 크기의 9장의 하얀색 색종이와 7장의 파란색 색종이를 보여주고 있다.

img

입력으로 주어진 종이의 한 변의 길이 N과 각 정사각형칸의 색(하얀색 또는 파란색)이 주어질 때 잘라진 하얀색 색종이와 파란색 색종이의 개수를 구하는 프로그램을 작성하시오.


입력

첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. 하얀색으로 칠해진 칸은 0, 파란색으로 칠해진 칸은 1로 주어지며, 각 숫자 사이에는 빈칸이 하나씩 있다.


출력

첫째 줄에는 잘라진 햐얀색 색종이의 개수를 출력하고, 둘째 줄에는 파란색 색종이의 개수를 출력한다.


예제 입력 1

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

예제 출력 1

1
2
9
7

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

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
27
28
29
30
31
32
33
34
35
36
37
import sys

input = sys.stdin.readline

N = int(input())

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

result = [] # white(0), blue(1)


def check_same(x, y, d):
color = paper_list[x][y]
for i in range(x, x + d):
for j in range(y, y + d):
if paper_list[i][j] != color:
return False
return True


def solution(x, y, d):
if check_same(x, y, d):
if paper_list[x][y]:
result.append(1)
else:
result.append(0)
else:
d //= 2
solution(x, y, d)
solution(x + d, y, d)
solution(x, y + d, d)
solution(x + d, y + d, d)


solution(0, 0, N)
print(result.count(0))
print(result.count(1))
[백준] 11729번 하노이 탑 이동 순서

[백준] 11729번 하노이 탑 이동 순서

출처: [백준] 11729번 하노이 탑 이동 순서


문제

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.

  1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.
  2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.

이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.

아래 그림은 원판이 5개인 경우의 예시이다.

img


입력

첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다.


출력

첫째 줄에 옮긴 횟수 K를 출력한다.

두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력하는데, 이는 A번째 탑의 가장 위에 있는 원판을 B번째 탑의 가장 위로 옮긴다는 뜻이다.


예제 입력 1

1
3

예제 출력 1

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

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def hanoi(n, a, b, c):
if n == 1:
move.append([a, c])
else:
hanoi(n - 1, a, c, b)
move.append([a, c])
hanoi(n - 1, b, a, c)


N = int(input())
move = []
hanoi(N, 1, 2, 3)


print(len(move))
print('\n'.join([' '.join(str(i) for i in row) for row in move]))

[백준] 17298번 오큰수

[백준] 17298번 오큰수

출처: [백준] 17298번 오큰수


문제

크기가 N인 수열 A = A1, A2, …, AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.

예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다.


입력

첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, …, AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.


출력

총 N개의 수 NGE(1), NGE(2), …, NGE(N)을 공백으로 구분해 출력한다.


예제 입력 1

1
2
4
3 5 2 7

예제 출력 1

1
5 7 7 -1

예제 입력 2

1
2
4
9 5 4 8

예제 출력 2

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

input = sys.stdin.readline

N = int(input())
num_list = list(map(int, input().split()))

index_stack = []
result = [-1 for _ in range(N)] # 각 인덱스에 오큰수를 찾지 못하면 -1

index_stack.append(0)
i = 1

while index_stack and i < N: # 스택에 값이 존재하며, i가 N보다 작을 때만
while index_stack and num_list[index_stack[-1]] < num_list[i]:
result[index_stack[-1]] = num_list[i]
index_stack.pop()

index_stack.append(i)
i += 1

for num in result:
print(num, end=" ")

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

1. KAIST, 딥페이크 탐지 모바일 앱 ‘카이캐치(KaiCatch)’ 서비스 개시

KAIST, 딥페이크 탐지 모바일 앱 ‘카이캐치(KaiCatch)’ 서비스 개시 : 네이버 뉴스 (naver.com)

img

이흥규 KAIST 전산학부 교수팀이 개발한 딥페이크 및 사진 위변조 탐지 소프트웨어 카이캐치 앱의 첫 화면. [사진 제공 = KAIST]

30일 KAIST는 전산학부 이흥규 교수 연구팀이 인공신경망 기반 딥페이크(deepfake) 탐지와 사진 위변조 탐지 소프트웨어인 ‘카이캐치(KaiCatch)’를 모바일 앱 형태로 개발해 서비스를 시작한다고 밝혔다.

연구팀이 개발한 기술은 딥페이크 생성 유형에 상관없이 딥페이크 여부를 탐지하기 위해 영상의 미세 변형 신호 흔적과 미세 이상 신호 흔적 탐지 기술을 적용한 신호처리 및 인공지능 기술로 개발됐으며, 이러한 핵심 기술들을 사용해, 얼굴 영역의 미세 변형과 코, 입, 얼굴 윤곽 등 얼굴 내 기하학적 왜곡 발생 가능 영역의 이상 신호 흔적을 분석해 딥페이크를 탐지한다.

2. ‘멜론’ 추격하는 ‘유튜브뮤직’…1년새 122만→261만 급증

‘멜론’ 추격하는 ‘유튜브뮤직’…1년새 122만→261만 급증 : 네이버 뉴스 (naver.com)

img

(와이즈앱 제공)© 뉴스1

‘글로벌 IT 골리앗’ 구글의 음원 스트리밍 앱 ‘유튜브뮤직’이 토종 음원 앱 ‘멜론’을 빠르게 추격하고 있는 것으로 나타났다.

가장 많이 사용한 음악 스트리밍 앱은 멜론(510만명)이었고, 그 뒤로는 유튜브 뮤직에 이어 지니뮤직(257만명), 플로(162만명), 네이버 바이브(87만명), 카카오뮤직(46만명), 스포티파이(42만명), 벅스(37만명) 순이었다.

3. “비싼 요금제 쓰는데”…’먹통 5G’에 결국 소송전 돌입하나

“비싼 요금제 쓰는데”…’먹통 5G’에 결국 소송전 돌입하나 : 네이버 뉴스 (naver.com)

img

배민라이더스 배달 오토바이가 줄지어 서있다. 사진=강은구 한국경제신문 기자 [email protected]

31일 이동통신 업계에 따르면 5G 일부 소비자들은 현재 이동통신 3사를 대상으로 집단 소송을 준비 중이고, 집단소송 플랫폼 ‘화난사람들’과 네이버카페 ‘5G 피해자모임’ 등에 따르면 현재까지 집단소송 의사를 밝힌 소비자는 약 1만명에 이르며, 이들은 5G 끊김현상, 빠른 배터리 소진, 일부 지역에서만 이용 가능, 4G 대비 고가 요금제 등에 대해 불만을 제기하고 있다.

한 이통사 관계자는 “지난해 코로나 타격 등으로 다소 더디긴 했지만 지난해 서울과 6대 광역시를 시작으로 5G 기지국 구축에 속도를 내고 있다”며 “트래픽이 적은 도서 산간이나 농어촌 지역도 이통사간 공동 기지국 구축으로 커버리지를 빠르게 확대해 계획대로 2022년까지 끊김없는 5G 전국망을 구축할 계획”이라고 말했다.

4. 카카오에 집결한 ‘한게임 사단’…5000억 장전하고 M&A·신사업 ‘승부수’

카카오에 집결한 ‘한게임 사단’…5000억 장전하고 M&A·신사업 ‘승부수’ : 네이버 뉴스 (naver.com)

img

카카오게임즈 제공 © 뉴스1

카카오게임즈가 국내 게임 포털 시장을 장악했던 ‘한게임’ 출신 경영자들을 끌어모으고 있으며, 한게임 창립멤버 및 역대 수장을 요직에 앉혀 과거 한게임 성공신화를 재현하겠다는 김범수 카카오 의장의 청사진으로 풀이된다.

게임과 결합되고 있는 메타버스는 물론, 정욱 대표가 평소 관심이 깊은 소셜카지노 사업도 강화할 것으로 보이며, 카카오게임즈는 이번 주주총회에서 사업목적에 ‘블록체인 기반 응용 소프트웨어 개발 및 공급업’을 추가했다.

5. “노조 만들어 쟁취한다”…IT업계 성과급 논란 ‘노조 설립’으로 번졌다

“노조 만들어 쟁취한다”…IT업계 성과급 논란 ‘노조 설립’으로 번졌다 : 네이버 뉴스 (naver.com)

코로나19 사태가 ‘IT업계 호황→개발자 부족→연봉 인상→연봉·성과급 충분치 않은 직원 불만 토로’를 촉발했는데 이것이 이제는 노조 설립으로까지 이어지는 것이며, ‘한국의 실리콘밸리’라 불리는 판교의 IT기업들은 업종 특성상 노조 설립이 활발하지는 않았는데 봄바람처럼 살살 불기 시작한 노조 설립 기조가 강풍으로 변하고 있다.

이에 앞서 지난 25일에는 ‘카카오뱅크’에 인터넷은행 최초로 노조가 설립됐고, 지난 23일 소프트웨어 업체 ‘한글과컴퓨터’에도 2004년 해산된 이후 17년 만에 노조가 재설립됐다는 소식이 알려졌고, LG전자에서도 지난달 25일 사무직 중심의 제3노조가 만들어져 3000명이 넘는 조합원을 모았다.

6. [단독] 한컴-아마존 ‘클라우드PC’ 연합군 뜬다

[단독] 한컴-아마존 ‘클라우드PC’ 연합군 뜬다 : 네이버 뉴스 (naver.com)

img

30일 정보기술(IT)업계에 따르면, 한글과컴퓨터그룹(한컴그룹)은 그룹운영실·해외사업 총괄을 주축으로 아마존웹서비스(AWS)와 DaaS(Desktop as a Service) 기반의 클라우드PC 사업 진출을 추진하고 있으며, 성사된다면 글로벌 클라우드 업체와 국내 소프트웨어 업체가 ‘연합군’을 꾸린 첫 사례가 된다.

클라우드PC 시장은 새롭게 떠오르는 ‘블루오션’이고, 운영체제(OS)와 응용프로그램, 저장 공간 등 컴퓨터 기능의 대부분을 클라우드 환경으로 옮겨버린다는 개념이어서, 솔루션과 저장공간이 중심인 일반 클라우드 서비스와는 다르다. 최소한의 장치만 있는 태블릿이나 스마트폰을 클라우드에 연결해 내 사무실 데스크톱PC처럼 쓰는 게 가능한 반면 비용은 PC 네트워크 구축 금액의 30~40% 수준이라는 게 강점이다.