[백준] 3986번 좋은 단어

[백준] 3986번 좋은 단어

출처: [백준] 3986번 좋은 단어


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 7866 3720 3094 48.863%

문제

이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다. 안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 ‘좋은 단어’나 세보기로 마음 먹었다.

평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 ‘좋은 단어’이다. 평석이가 ‘좋은 단어’ 개수를 세는 것을 도와주자.


입력

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

다음 N개 줄에는 A와 B로만 이루어진 단어가 한 줄에 하나씩 주어진다. 단어의 길이는 2와 100,000사이이며, 모든 단어 길이의 합은 1,000,000을 넘지 않는다.


출력

첫째 줄에 좋은 단어의 수를 출력한다.


예제 입력 1

1
2
3
4
3
ABAB
AABB
ABBA

예제 출력 1

1
2

예제 입력 2

1
2
3
4
3
AAA
AA
AB

예제 출력 2

1
1

예제 입력 3

1
2
1
ABBABB

예제 출력 3

1
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())
cnt = 0

for _ in range(N):
stack = []
word = list(input().rstrip())

while word:
temp = word.pop()
if not stack:
stack.append(temp)
else:
if stack[-1] == temp:
stack.pop()
else:
stack.append(temp)
if not stack:
cnt += 1

print(cnt)

[백준] 10799번 쇠막대기

[백준] 10799번 쇠막대기

출처: [백준] 10799번 쇠막대기


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 25974 16167 11772 62.497%

문제

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.

  • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.
  • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.
  • 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다.

아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다.

img

이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여 왼쪽부터 순서대로 표현할 수 있다.

  1. 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 ‘( ) ’ 으로 표현된다. 또한, 모든 ‘( ) ’는 반드시 레이저를 표현한다.
  2. 쇠막대기의 왼쪽 끝은 여는 괄호 ‘ ( ’ 로, 오른쪽 끝은 닫힌 괄호 ‘) ’ 로 표현된다.

위 예의 괄호 표현은 그림 위에 주어져 있다.

쇠막대기는 레이저에 의해 몇 개의 조각으로 잘려지는데, 위 예에서 가장 위에 있는 두 개의 쇠막대기는 각각 3개와 2개의 조각으로 잘려지고, 이와 같은 방식으로 주어진 쇠막대기들은 총 17개의 조각으로 잘려진다.

쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 주어졌을 때, 잘려진 쇠막대기 조각의 총 개수를 구하는 프로그램을 작성하시오.


입력

한 줄에 쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 공백없이 주어진다. 괄호 문자의 개수는 최대 100,000이다.


출력

잘려진 조각의 총 개수를 나타내는 정수를 한 줄에 출력한다.


예제 입력 1

1
()(((()())(())()))(())

예제 출력 1

1
17

예제 입력 2

1
(((()(()()))(())()))(()())

예제 출력 2

1
24

출처


알고리즘 분류


소스코드

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

razer = list(input().rstrip())
# print(razer)

answer = 0
stack = []

for i in range(len(razer)):
if razer[i] == '(':
stack.append('(')
else:
if razer[i - 1] == '(': # )가 왔는데 이전이 바로 (일 경우
stack.pop()
answer += len(stack)
else:
stack.pop()
answer += 1

print(answer)

[백준] 1406번 에디터

[백준] 1406번 에디터

출처: [백준] 1406번 에디터


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
0.3 초 (하단 참고) 512 MB 48952 13490 8865 26.934%

문제

한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다.

이 편집기에는 ‘커서’라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다.

이 편집기가 지원하는 명령어는 다음과 같다.

L 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨)
D 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨)
B 커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞이면 무시됨) 삭제로 인해 커서는 한 칸 왼쪽으로 이동한 것처럼 나타나지만, 실제로 커서의 오른쪽에 있던 문자는 그대로임
P $ $라는 문자를 커서 왼쪽에 추가함

초기에 편집기에 입력되어 있는 문자열이 주어지고, 그 이후 입력한 명령어가 차례로 주어졌을 때, 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 구하는 프로그램을 작성하시오. 단, 명령어가 수행되기 전에 커서는 문장의 맨 뒤에 위치하고 있다고 한다.


입력

첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수를 나타내는 정수 M(1 ≤ M ≤ 500,000)이 주어진다. 셋째 줄부터 M개의 줄에 걸쳐 입력할 명령어가 순서대로 주어진다. 명령어는 위의 네 가지 중 하나의 형태로만 주어진다.


출력

첫째 줄에 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 출력한다.


예제 입력 1

1
2
3
4
5
abcd
3
P x
L
P y

예제 출력 1

1
abcdyx

예제 입력 2

1
2
3
4
5
6
7
8
9
10
11
abc
9
L
L
L
L
L
P x
L
B
P y

예제 출력 2

1
yxabc

예제 입력 3

1
2
3
4
5
6
7
8
9
10
11
12
13
dmih
11
B
B
P x
L
B
B
B
P y
D
D
P z

예제 출력 3

1
yxz

출처


알고리즘 분류


소스코드

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import sys

input = sys.stdin.readline

init_string = list(input().rstrip())
N = int(input())
string2 = []

for _ in range(N):
comm = list(input().split())
if comm[0] == 'P':
init_string.append(comm[1])
elif comm[0] == 'L':
if init_string:
string2.append(init_string.pop())
elif comm[0] == 'D':
if string2:
init_string.append(string2.pop())
elif comm[0] == 'B':
if init_string:
init_string.pop()

print(''.join(init_string + list(reversed(string2))))






----------시간초과1---------------------
import sys

input = sys.stdin.readline

init_string = input().rstrip()
N = int(input())
cursor = len(init_string)
for _ in range(N):
comm = list(input().split())
if comm[0] == 'P':
init_string = init_string[0:cursor] + comm[1] + init_string[cursor:]
cursor += 1
elif comm[0] == 'L':
if not cursor == 0:
cursor -= 1
else:
continue
elif comm[0] == 'D':
if not cursor == len(init_string):
cursor += 1
else:
continue

elif comm[0] == 'B':
if cursor == 0:
continue
else:
init_string = init_string[0:cursor - 1] + init_string[cursor:]
cursor -= 1
print(''.join(init_string))



-----------시간초과2---------------
import sys

input = sys.stdin.readline

init_string = list(input().rstrip())
N = int(input())
cursor = len(init_string)
for _ in range(N):
comm = list(input().split())
if comm[0] == 'P':
init_string.insert(cursor, comm[1])
cursor += 1
elif comm[0] == 'L':
cursor -= 1
if cursor < 0:
cursor = 0
elif comm[0] == 'D':
cursor += 1
elif comm[0] == 'B':
if cursor == 0:
continue
else:
cursor -= 1
init_string.pop(cursor)

print(''.join(init_string))


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

1. 올해 상반기 네이버페이 결제금액 17.7조원

올해 상반기 네이버페이 결제금액 17.7조원

모바일 앱 시장 분석 서비스 업체 와이즈앱은 올해 상반기 ‘네이버페이’로 결제된 쇼핑, 콘텐츠 금액이 작년 같은 기간 대비 41% 증가한 액수로 약 17조7000억원이라고 7일 추정해 발표했다.

네이버페이 사용자 수는 지난 6월 한 달 동안 1711만명으로 이들은 월 평균 18만1680원을 결제했으며, 6월 기준 연령별 결제금액 분포는 20대가 17.4%, 30대가 37.5%, 40대가 26.0%였다. 50대 이상은 19.4%였다.


2. ‘초대형IB’ 꿈꾸는 카카오페이…’1조+@’ 쏟아 증권·보험 등 전방위 확장

‘초대형IB’ 꿈꾸는 카카오페이…’1조+@’ 쏟아 증권·보험 등 전방위 확장

7일 금융감독원 전자공시시스템에 따르면 카카오페이는 증권신고서에 “이번 공모자금을 활용해서 자회사 카카오페이증권의 리테일사업 확장을 위한 자본 확충을 가속화할 계획”이라며 “중장기적으로는 프라임 브로커리지 등 IB사업 진출도 목표로 하고 있다”고 밝혔다.

카카오페이는 지난달 금융위원회로부터 디지털 손해보험사 설립 예비허가를 받았고, 이를 기반으로 내년 1분 기중 공식 론칭을 계획하고 있고 현재 기존 보험업계에 몸담고 있는 전문가들을 영입하는 작업이 한창이다.


3. 마블 코믹스 ‘블랙 위도우’ 네이버웹툰으로 나온다

마블 코믹스 ‘블랙 위도우’ 네이버웹툰으로 나온다

이번 작품은 네이버웹툰을 통해 선보이는 ‘마블 웹툰 프로젝트’ 첫번째 시리즈로 마블 코믹스의 원작은 웹툰 형태에 맞게 재창조한 세계 최초의 타이틀이다.

네이버웹툰은 ‘블랙 위도우’를 시작으로 어벤저스, 스파이더맨, 헐크 등 대작들을 9월부터 네이버웹툰과 네이버 시리즈에서 감상할 수 있다.


[백준] 1991번 트리 순회

[백준] 1991번 트리 순회

출처: [백준] 1991번 트리 순회


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 25295 15857 12064 63.929%

문제

이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.

img

예를 들어 위와 같은 이진 트리가 입력되면,

  • 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식)
  • 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식)
  • 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트)

가 된다.


입력

첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 대문자로 매겨지며, 항상 A가 루트 노드가 된다. 자식 노드가 없는 경우에는 .으로 표현된다.


출력

첫째 줄에 전위 순회, 둘째 줄에 중위 순회, 셋째 줄에 후위 순회한 결과를 출력한다. 각 줄에 N개의 알파벳을 공백 없이 출력하면 된다.


예제 입력 1

1
2
3
4
5
6
7
8
7
A B C
B D .
C E F
E . .
F . G
D . .
G . .

예제 출력 1

1
2
3
ABDCEFG
DBAECFG
DBEGFCA

출처

-


알고리즘 분류


소스코드

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 = int(input())

tree = {}
for _ in range(N):
root, left, right = input().rstrip().split()
tree[root] = [left, right]


def preorder(root):
if root != '.':
print(root, end='')
preorder(tree[root][0])
preorder(tree[root][1])


def inorder(root):
if root != '.':
inorder(tree[root][0])
print(root, end='')
inorder(tree[root][1])


def postorder(root):
if root != '.':
postorder(tree[root][0])
postorder(tree[root][1])
print(root, end='')


preorder('A')
print()
inorder('A')
print()
postorder('A')

[프로그래머스] [Summer/Winter Coding 2018] 스킬트리

[프로그래머스] [Summer/Winter Coding 2018] 스킬트리

출처: [Summer/Winter Coding 2018] 스킬트리


문제

선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.

예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.

위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다.

선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요.


제한

  • 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있습니다.
  • 스킬 순서와 스킬트리는 문자열로 표기합니다.
    • 예를 들어, C → B → D 라면 “CBD”로 표기합니다
  • 선행 스킬 순서 skill의 길이는 1 이상 26 이하이며, 스킬은 중복해 주어지지 않습니다.
  • skill_trees는 길이 1 이상 20 이하인 배열입니다.
  • skill_trees의 원소는 스킬을 나타내는 문자열입니다.
    • skill_trees의 원소는 길이가 2 이상 26 이하인 문자열이며, 스킬이 중복해 주어지지 않습니다.

입출력

skill skill_trees return
"CBD" ["BACDE", "CBADF", "AECB", "BDA"] 2

입출력 예 1

  • “BACDE”: B 스킬을 배우기 전에 C 스킬을 먼저 배워야 합니다. 불가능한 스킬트립니다.
  • “CBADF”: 가능한 스킬트리입니다.
  • “AECB”: 가능한 스킬트리입니다.
  • “BDA”: B 스킬을 배우기 전에 C 스킬을 먼저 배워야 합니다. 불가능한 스킬트리입니다.

풀이

-


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(skill, skill_trees):
answer = 0

for skills in skill_trees:
skill_list = list(skill)

for s in skills:
if s in skill:
if s != skill_list.pop(0):
break
else:
answer += 1

return answer
[백준] 2002번 추월

[백준] 2002번 추월

출처: [백준] 2002번 추월


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 2040 894 757 44.766%

문제

대한민국을 비롯한 대부분의 나라에서는 터널 내에서의 차선 변경을 법률로 금하고 있다. 조금만 관찰력이 있는 학생이라면 터널 내부에서는 차선이 파선이 아닌 실선으로 되어 있다는 것을 알고 있을 것이다. 이는 차선을 변경할 수 없음을 말하는 것이고, 따라서 터널 내부에서의 추월은 불가능하다.

소문난 명콤비 경찰 대근이와 영식이가 추월하는 차량을 잡기 위해 한 터널에 투입되었다. 대근이는 터널의 입구에, 영식이는 터널의 출구에 각각 잠복하고, 대근이는 차가 터널에 들어가는 순서대로, 영식이는 차가 터널에서 나오는 순서대로 각각 차량 번호를 적어 두었다.

N개의 차량이 지나간 후, 대근이와 영식이는 자신들이 적어 둔 차량 번호의 목록을 보고, 터널 내부에서 반드시 추월을 했을 것으로 여겨지는 차들이 몇 대 있다는 것을 알게 되었다. 대근이와 영식이를 도와 이를 구하는 프로그램을 작성해 보자.


입력

입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이가 적은 차량 번호 목록이 주어진다. 각 차량 번호는 6글자 이상 8글자 이하의 문자열로, 영어 대문자(‘A’-‘Z’)와 숫자(‘0’-‘9’)로만 이루어져 있다.

같은 차량 번호가 두 번 이상 주어지는 경우는 없다.


출력

첫째 줄에 터널 내부에서 반드시 추월을 했을 것으로 여겨지는 차가 몇 대인지 출력한다.


예제 입력 1

1
2
3
4
5
6
7
8
9
4
ZG431SN
ZG5080K
ST123D
ZG206A
ZG206A
ZG431SN
ZG5080K
ST123D

예제 출력 1

1
1

예제 입력 2

1
2
3
4
5
6
7
8
9
10
11
5
ZG508OK
PU305A
RI604B
ZG206A
ZG232ZF
PU305A
ZG232ZF
ZG206A
ZG508OK
RI604B

예제 출력 2

1
3

예제 입력 3

1
2
3
4
5
6
7
8
9
10
11
5
ZG206A
PU234Q
OS945CK
ZG431SN
ZG5962J
ZG5962J
OS945CK
ZG206A
PU234Q
ZG431SN

예제 출력 3

1
2

출처


알고리즘 분류


소스코드

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())

count = 0
input_car = {}
output_car = []

for i in range(N):
input_car[input().rstrip()] = i

for i in range(N):
output_car.append(input().rstrip())

for i in range(N - 1):
for j in range(i + 1, N):
if input_car[output_car[i]] > input_car[output_car[j]]:
count += 1
break

print(count)

2021년 7월 05일 월요일 IT뉴스

1. 패션 시장 실험 본격화하는 네이버…”동대문 스마트물류에 무료반품까지”

패션 시장 실험 본격화하는 네이버…”동대문 스마트물류에 무료반품까지”

최근 네이버는 브랜디 등과 협업해 ‘동대문 스마트 물류’ 시스템을 구축해 동대문 패스트패션 경쟁력에 가속을 달아줄 물류 실험을 진행 중이며, 네이버에 따르면 현재 동대문 패션 상품을 판매하는 7만여명의 판매자 가운데 400여명이 브랜디나 신상마켓 등 스타트업과 연계한 ‘동대문 스마트 물류 서비스’를 이용하고 있다.

  • 동대문 스마트 물류 서비스는 도매시장 사입과 포장, 물류의 전 과정을 대행한다. 판매자들은 상품이나 쇼핑몰 관리, 고객대응, 마케팅 등에 집중할 수 있다.

아울러 네이버는 백화점 및 아울렛윈도를 통해 ‘무료 반품 및 서비스’ 실험도 진행 중으로, 사이즈나 컬러 등 교환 반품 니즈가 높은 일부 패션 상품을 대상으로 오는 7월 말까지 무료 반품 서비스를 시범 운영 중이다. 편리한 무료반품 교환 서비스가 실제 매출 및 주문량 증대로도 이어지고 있다는 게 회사 측의 설명이다.


2. “월 9900원에 OTT와 커피 4잔을 한번에”…KT+할리스 구독상품 나왔다

“월 9900원에 OTT와 커피 4잔을 한번에”…KT+할리스 구독상품 나왔다

KT는 4일 전국 580여 개 매장을 보유한 커피 브랜드 할리스와 제휴해 ‘시즌X할리스 구독’ 서비스를 내놓았다. 월정액 9900원에 KT의 OTT 서비스 시즌과 할리스 커피 4잔을 이용할 수 있다. KT의 모델이 제휴 서비스를 소개하고 있다. [사진 KT]

KT는 전국에 580여 개 매장을 운영하는 커피 브랜드 ‘할리스’와 제휴해 ‘시즌×할리스 구독’ 서비스, 월 9900원에 KT의 OTT 서비스인 시즌(Seezn) 플레인과 할리스 카페아메리카노(레귤러) 4잔을 이용할 수 있다.

KT 관계자는 “기존 구독 서비스가 단일 상품이나 서비스를 단순 할인하는 방식이었다면, 이번 KT×할리스 구독 서비스는 MZ세대(1980년대 이후 태어난 젊은 층)에게 인기인 영상 스트리밍과 커피 수요를 모두 충족해 호응도가 높을 것”이라고 기대했다.


3. 연이은 악재…쿠팡, 검색순위 조작·납품업체 갑질 의혹

연이은 악재…쿠팡, 검색순위 조작·납품업체 갑질 의혹

물류센터 화재 및 열악한 근로환경 등으로 논란의 중심에 있는 쿠팡이 이번엔 검색순위 조작과 납품업체 갑질 의혹으로 공정거래위원회에 조사를 받게 됐다.

쿠팡이 애플리케이션(앱)에서 자체브랜드(PB) 상품을 다른 납품업체 상품보다 우선 노출되도록 검색 알고리즘을 조작했다는 혐의를 받는 것으로 알려졌다. 또한 쿠팡이 납품업체에 광고 구매를 강요하고 이를 수용하지 않으면 로켓배송 등 혜택 적용에서 제외했다는 의혹을 확인 중인 것으로 전해진다.


4. 카카오T 앱 개편에도 자리 지키는 ‘카풀’…재개 노리나?

카카오T 앱 개편에도 자리 지키는 ‘카풀’…재개 노리나?

카카오T 앱에서 카풀 메뉴를 누르면 오른쪽 화면으로 이동한다. /사진=카카오T 앱 캡처

4일 업계에 따르면 카카오모빌리티는 이달 카카오T 앱을 전면 개편했는데 주목할 점은 2018년 출시 후 택시업계와의 마찰로 제대로 서비스 한번 해보지 못한 카풀이 앱 개편에도 첫 화면 한 자리를 차지하고 있는 것이다.

이에 카카오모빌리티 관계자는 카풀의 사업성에 대해 고민 중이지만, 가까운 시일 내 서비스를 선보이는 건 아니라고 선을 그었다


5. [넘버스]카카오모빌리티에 투자한 LG의 ‘빅픽처’는①

LG의 이번 투자는 카카오모빌리티의 주행 데이터를 확보해 모빌리티 사업의 소프트웨어 경쟁력을 강화하려는 전략으로 보입니다. LG가 라이드셀 투자로 모빌리티 사업을 추진할 플랫폼을 확보했다면, 카카오모빌리티는 국내 이용자의 빅데이터를 확보하기 위한 것으로 추정됩니다.

[백준] 10546번 배부른 마라토너

[백준] 10546번 배부른 마라토너

출처: [백준] 10546번 배부른 마라토너


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 2023 867 681 44.597%

문제

마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명만 빼고!

모두가 참가하고 싶어서 안달인데 이런 백준 마라톤 대회에 참가해 놓고 완주하지 못한 배부른 참가자 한 명은 누굴까?


입력

첫째 줄에는 참가자 수 N이 주어진다. (1 ≤ N ≤ 105)

N개의 줄에는 참가자의 이름이 주어진다.

추가적으로 주어지는 N-1개의 줄에는 완주한 참가자의 이름이 쓰여져 있다.

참가자들의 이름은 길이가 1보다 크거나 같고, 20보다 작거나 같은 문자열이고, 알파벳 소문자로만 이루어져 있다.

참가자들 중엔 동명이인이 있을 수도 있다.


출력

마라톤을 완주하지 못한 참가자의 이름을 출력한다.


예제 입력 1

1
2
3
4
5
6
3
leo
kiki
eden
eden
kiki

예제 출력 1

1
leo

예제 입력 2

1
2
3
4
5
6
7
8
9
10
5
marina
josipa
nikola
vinko
filipa
josipa
filipa
marina
nikola

예제 출력 2

1
vinko

예제 입력 3

1
2
3
4
5
6
7
8
4
mislav
stanko
mislav
ana
stanko
ana
mislav

예제 출력 3

1
mislav

출처


알고리즘 분류


소스코드

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())

participants = {}
for _ in range(N):
participant = input().rstrip()
if participant in participants:
participants[participant] += 1
else:
participants[participant] = 0

for _ in range(N - 1):
participants[input().rstrip()] += 1

for key, value in participants.items():
if value % 2 == 0:
print(key)
break
else:
continue

[백준] 16165번 걸그룹 마스터 준석이

[백준] 16165번 걸그룹 마스터 준석이

출처: [백준] 16165번 걸그룹 마스터 준석이


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 (추가 시간 없음) 128 MB 1680 1055 788 63.446%

문제

정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는 퀴즈 프로그램을 만들고자 한다.


입력

첫 번째 줄에는 총 입력 받을 걸그룹의 수 N(0 < N < 100)과 맞혀야 할 문제의 수 M(0 < M < 100)을 입력받는다.

두 번째 줄부터는 각 걸그룹마다 팀의 이름, 걸그룹의 인원 수, 멤버의 이름을 한 줄씩 차례대로 입력받는다. 팀과 멤버의 이름은 최대 100글자이며, 모든 글자는 알파벳 소문자이다. 하나의 걸그룹이나 서로 다른 두 걸그룹에 이름이 같은 두 멤버가 있는 경우는 없다.

그 다음 줄부터는 M개의 퀴즈를 입력받는다. 각각의 퀴즈는 두 줄로 이루어져 있으며, 팀의 이름이나 멤버의 이름이 첫 줄에 주어지고 퀴즈의 종류를 나타내는 0 또는 1이 두 번째 줄에 주어진다. 퀴즈의 종류가 0일 경우 팀의 이름이 주어지며, 1일 경우 멤버의 이름이 주어진다.


출력

첫 번째 줄부터 차례대로 퀴즈에 대한 답을 출력한다. 퀴즈의 종류가 0일 경우 해당 팀에 속한 멤버의 이름을 사전순으로 한 줄에 한 명씩 출력한다. 퀴즈의 종류가 1일 경우 해당 멤버가 속한 팀의 이름을 출력한다.


예제 입력 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
3 4
twice
9
jihyo
dahyeon
mina
momo
chaeyoung
jeongyeon
tzuyu
sana
nayeon
blackpink
4
jisu
lisa
rose
jenny
redvelvet
5
wendy
irene
seulgi
yeri
joy
sana
1
wendy
1
twice
0
rose
1

예제 출력 1

1
2
3
4
5
6
7
8
9
10
11
12
twice
redvelvet
chaeyoung
dahyeon
jeongyeon
jihyo
mina
momo
nayeon
sana
tzuyu
blackpink

출처


알고리즘 분류


소스코드

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, M = map(int, input().split())

Team = {}
for _ in range(N):
team_name = input().rstrip()
Team[team_name] = []
members = int(input())
for _ in range(members):
Team[team_name].append(input().rstrip())

for _ in range(M):
name = input().rstrip()
flag = int(input())
if flag: # 팀 이름만 출력
for team, member in Team.items():
if name in member:
print(team)
else: # 멤버 전체 사전순 출력
print('\n'.join(sorted(Team[name])))