Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions Limchaeyoung/[BOJ] 수 묶기.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# https://www.acmicpc.net/problem/1744
n = int(input())
data = [int(input()) for i in range(n)]
data.sort(reverse=True)
idx, sum, num = len(data), 0, 0

for i, d in enumerate(data):
if d < 1:
idx = i
break

data1, data2 = data[:idx], data[idx:]
data2.reverse()

if data1:
for i, d in enumerate(data1):
if d == 1:
sum += 1
continue
if i % 2 == 0:
num = d
else:
num *= d
sum += num
num = 0
if num != 0: sum += num
if data2:
for i, d in enumerate(data2):
if i % 2 == 0:
num = d
else:
num *= d
sum += num
num = 0
if num != 0: sum += num

print(sum)

30 changes: 30 additions & 0 deletions Limchaeyoung/[BOJ] 숨바꼭질 3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# https://www.acmicpc.net/status?user_id=hea_c&problem_id=13549&from_mine=1
from collections import deque

n, k = map(int, input().split())
sec = [-1] * 100001
s = [2, -1, 1]

def bfs(n):
queue = deque([n])
sec[n] = 0
while queue:
q = queue.popleft()
for i in s:
if i == 2:
tp = 1
x = q * 2
else:
tp = 0
x = q + i
if 0 <= x <= 100000 and sec[x] == -1:
if tp:
queue.append(x)
sec[x] = sec[q]
else:
queue.append(x)
sec[x] = sec[q]+1
if x == k:
return sec[x]

print(bfs(n))
21 changes: 21 additions & 0 deletions Limchaeyoung/[BOJ] 숨바꼭질.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# https://www.acmicpc.net/problem/1697
from collections import deque

n, k = map(int, input().split())
sec = [-1] * 100001
s = [-1,1,2]

def bfs(n):
queue = deque([n])
sec[n] = 0
while queue:
q = queue.popleft()
for i in s:
x = q * 2 if i == 2 else q + i
if 0 <= x <= 100000 and sec[x] == -1:
queue.append(x)
sec[x] = sec[q] + 1
if x == k:
return sec[x]

print(bfs(n))
11 changes: 11 additions & 0 deletions Limchaeyoung/[BOJ] 잃어버린 괄호.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# https://www.acmicpc.net/problem/1541
st = input().split('-')
num = []
for s in st:
n = 0
ii = s.split('+')
for i in ii:
n += int(i)
num.append(n)
answer = num[0] * 2 - sum(num)
print(answer)
15 changes: 15 additions & 0 deletions Limchaeyoung/[PGS] 네트워크.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# https://school.programmers.co.kr/learn/courses/30/lessons/43162#
def dfs(graph, visited, v):
visited[v] = True
for i in range(len(graph[v])):
if not visited[i] and graph[v][i]:
dfs(graph, visited, i)

def solution(n, computers):
cnt = 0
visited = [False] * n
for i in range(n):
if not visited[i]:
cnt += 1
dfs(computers, visited, i)
return cnt
13 changes: 13 additions & 0 deletions Limchaeyoung/[PGS] 단속카메라.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# https://school.programmers.co.kr/learn/courses/30/lessons/42884
def solution(routes):
routes = sorted(routes, key=lambda x: (x[1], x[0]))
k = routes[0][1]
print(routes)
cnt = 1
for i in range(1, len(routes)):
if routes[i][0] <= k <= routes[i][0]:
continue
else:
cnt += 1
k = routes[i][1]
return cnt
22 changes: 22 additions & 0 deletions Limchaeyoung/[PGS] 베스트 앨범.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# https://school.programmers.co.kr/learn/courses/30/lessons/42579
def solution(genres, plays):
data = {}
cnt = {}
answer = []
for i in range(len(genres)):
if genres[i] in data:
d = data[genres[i]]
d.append((i, plays[i]))
data[genres[i]] = d
cnt[genres[i]] += plays[i]
else:
data[genres[i]] = [(i, plays[i])]
cnt[genres[i]] = plays[i]
for i in data:
data[i] = sorted(data[i], key=lambda x: (-x[1], x[0]))
cnt = dict(sorted(cnt.items(), key=lambda x: -x[1]))
for c in cnt:
answer.append(data[c][0][0])
if len(data[c]) > 1:
answer.append(data[c][1][0])
return answer
10 changes: 10 additions & 0 deletions Limchaeyoung/[PGS] 전화번호 목록.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# https://school.programmers.co.kr/learn/courses/30/lessons/42577
def solution(phone_book):
pre = dict()
for p in phone_book:
for i in range(1, len(p)):
pre[p[:i]] = 1
for p in phone_book:
if p in pre:
return False
return True
11 changes: 11 additions & 0 deletions Limchaeyoung/[PGS] 카펫.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# https://school.programmers.co.kr/learn/courses/30/lessons/42842
def solution(brown, yellow):
s = 0
for i in range(1, int(yellow**0.5)+1):
if yellow % i == 0:
y = yellow // i
b = (y + 2) * (i + 2) - yellow
if b == brown:
s = y
break
return [s+2, yellow//s+2]