Skip to content

Commit d3f4be4

Browse files
authored
Merge pull request #74 from 24-Algorithm/minjeong
Minjeong / 10์›” 4์ฃผ์ฐจ / 5๊ฐœ
2 parents 0c20b38 + a812adb commit d3f4be4

6 files changed

+176
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
x, y = map(int, input().split()) # ์ „์ฒด ๊ฒŒ์ž„ ์ˆ˜(x)์™€ ์ด๊ธด ๊ฒŒ์ž„ ์ˆ˜(y) ์ž…๋ ฅ
5+
z = (y * 100) // x # ํ˜„์žฌ ์Šน๋ฅ  z ๊ณ„์‚ฐ
6+
7+
if z >= 99: # ๋งŒ์•ฝ ์Šน๋ฅ ์ด 99% ์ด์ƒ์ด๋ฉด ๋” ์ด์ƒ ์Šน๋ฅ ์„ ๋ณ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ -1 ์ถœ๋ ฅ ํ›„ ์ข…๋ฃŒ
8+
print(-1)
9+
exit(0)
10+
11+
answer = 0
12+
left = 1 # ์ด๋ถ„ ํƒ์ƒ‰์˜ ์‹œ์ž‘๊ฐ’ ์„ค์ •
13+
right = x # ์ด๋ถ„ ํƒ์ƒ‰์˜ ๋๊ฐ’ ์„ค์ •
14+
15+
while left <= right: # ์ด๋ถ„ ํƒ์ƒ‰ ์‹œ์ž‘
16+
mid = (left + right) // 2 # ์ค‘๊ฐ„ ๊ฐ’ ๊ณ„์‚ฐ
17+
if ((y + mid) * 100) // (x + mid) <= z: # ์ถ”๊ฐ€ํ•œ ๊ฒŒ์ž„ ํ›„ ์Šน๋ฅ  ๊ณ„์‚ฐ
18+
left = mid + 1 # ์Šน๋ฅ ์ด ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ๋งŽ์€ ๊ฒŒ์ž„์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ left ์ฆ๊ฐ€
19+
else:
20+
answer = mid # ์Šน๋ฅ ์ด ๋ณ€ํ•˜๋ฉด ํ•ด๋‹น mid ๊ฐ’์„ ์ €์žฅํ•˜๊ณ 
21+
right = mid - 1 # ๋” ์ ์€ ๊ฒŒ์ž„์—์„œ ์Šน๋ฅ ์ด ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด right ๊ฐ์†Œ
22+
23+
print(answer) # ์ตœ์ข…์ ์œผ๋กœ ๊ตฌํ•œ ์ตœ์†Œ ๊ฒŒ์ž„ ์ˆ˜ ์ถœ๋ ฅ
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import sys
2+
from collections import deque
3+
input = sys.stdin.readline
4+
5+
def bfs(x, y, n):
6+
queue = deque()
7+
queue.append((x, y)) # ์‹œ์ž‘์  ์ถ”๊ฐ€
8+
visited[x][y] = True # ์ดˆ๊ธฐ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
9+
10+
while queue:
11+
x, y = queue.popleft()
12+
for dx, dy in [(0, jump_game[x][y]), (jump_game[x][y], 0)]: # ์•„๋ž˜ (0, jump), ์˜ค๋ฅธ์ชฝ (jump, 0)
13+
nx, ny = x + dx, y + dy # ํ˜„์žฌ ์œ„์น˜์—์„œ ์นธ ์ˆ˜๋งŒํผ ์ด๋™
14+
# ๋งต ๋ฒ”์œ„ ์•ˆ์— ์žˆ๊ณ , ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
15+
if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny]:
16+
if jump_game[nx][ny] == -1: # ๋„์ฐฉ ์ง€์ ์— ๋„๋‹ฌํ•˜๋ฉด
17+
return True
18+
visited[nx][ny] = True
19+
queue.append((nx, ny)) # ๋‹ค์Œ ์ด๋™ ์ง€์  ์ถ”๊ฐ€
20+
21+
return False
22+
23+
# ์ž…๋ ฅ ์ฒ˜๋ฆฌ
24+
n = int(input())
25+
jump_game = []
26+
visited = [[False for _ in range(n)] for _ in range(n)]
27+
for _ in range(n):
28+
temp = list(map(int, input().split()))
29+
jump_game.append(temp)
30+
31+
# BFS ํƒ์ƒ‰
32+
if bfs(0, 0, n):
33+
print("HaruHaru")
34+
else:
35+
print("Hing")
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import sys
2+
from collections import deque
3+
input = sys.stdin.readline
4+
5+
n, m = map(int, input().split()) # ํ•™์ƒ ์ˆ˜, ํ•™์ƒ์ˆœ์„œ
6+
graph = [[] for _ in range(n + 1)] # ํ•™์ƒ ์ˆœ์„œ ๊ทธ๋ž˜ํ”„
7+
# ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ง„์ž… ์ฐจ์ˆ˜๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™”
8+
indegree = [0] * (n + 1)
9+
10+
# ๋น„๊ต(๊ฐ„์„ ) ์ •๋ณด ์ž…๋ ฅ ๋ฐ›๊ธฐ
11+
for _ in range(m):
12+
a, b = map(int, input().split())
13+
# a ๋ณด๋‹ค ํฐ ๋…ธ๋“œ๋กœ b ์ถ”๊ฐ€
14+
graph[a].append(b)
15+
# b์˜ ์ง„์ž…์ฐจ์ˆ˜ 1 ์ฆ๊ฐ€
16+
indegree[b] += 1
17+
18+
# ์œ„์ƒ ์ •๋ ฌ ํ•จ์ˆ˜
19+
def topology_sort():
20+
result = [] # ํ‚ค ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ
21+
q = deque()
22+
23+
# ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ธ ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž…. ์ฆ‰ ๊ฐ€์žฅ ์ž‘์€ ํ•™์ƒ
24+
for i in range(1, n + 1):
25+
if indegree[i] == 0:
26+
q.append(i)
27+
28+
# ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
29+
while q:
30+
now = q.popleft()
31+
result.append(now)
32+
# ํ•ด๋‹น ์›์†Œ์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์˜ ์ง„์ž… ์ฐจ์ˆ˜์—์„œ 1 ๋นผ๊ธฐ
33+
for i in graph[now]:
34+
indegree[i] -= 1
35+
# ์ƒˆ๋กญ๊ฒŒ ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ด ๋˜๋Š” ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž…
36+
if indegree[i] == 0:
37+
q.append(i)
38+
39+
for i in result:
40+
print(i, end=" ")
41+
42+
topology_sort()
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from collections import deque
2+
3+
# ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ
4+
v, e = map(int, input().split())
5+
# ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ง„์ž… ์ฐจ์ˆ˜๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™”
6+
indegree = [0] * (v + 1)
7+
# ๊ฐ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„  ์ •๋ณด๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”
8+
graph = [[] for _ in range(v + 1)]
9+
10+
# ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ๊ฐ„์„  ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ
11+
for _ in range(e):
12+
a, b = map(int, input().split())
13+
graph[a].append(b) # ์ •์  A์—์„œ B๋กœ ์ด๋™ ๊ฐ€๋Šฅ
14+
# ์ง„์ž…์ฐจ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€
15+
indegree[b] += 1
16+
17+
# ์œ„์ƒ ์ •๋ ฌ ํ•จ์ˆ˜
18+
def topology_sort():
19+
result = [] # ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ
20+
q = deque() # ํ ๊ธฐ๋Šฅ์„ ์œ„ํ•œ deque ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
21+
22+
# ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ธ ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž….
23+
for i in range(1, v + 1):
24+
if indegree[i] == 0:
25+
q.append(i)
26+
27+
# ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
28+
while q:
29+
# ํ์—์„œ ์›์†Œ ๊บผ๋‚ด๊ธฐ
30+
now = q.popleft()
31+
result.append(now)
32+
# ํ•ด๋‹น ์›์†Œ์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์˜ ์ง„์ž… ์ฐจ์ˆ˜์—์„œ 1 ๋นผ๊ธฐ
33+
for i in graph[now]:
34+
indegree[i] -= 1
35+
# ์ƒˆ๋กญ๊ฒŒ ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ด ๋˜๋Š” ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž…
36+
if indegree[i] == 0:
37+
q.append(i)
38+
39+
# ์œ„์ƒ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
40+
for i in result:
41+
print(i, end=" ")
42+
43+
topology_sort()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
n = int(input())
2+
3+
for i in range(n):
4+
name = input().split()
5+
god = 'god' + ''.join(name[1:])
6+
print(god)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import sys
2+
3+
input = sys.stdin.readline
4+
5+
# ์ˆซ์ž 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์˜์–ด ํ‘œํ˜„์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ
6+
english = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
7+
answer = {} # ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋”•์…”๋„ˆ๋ฆฌ (key: ์ˆซ์ž, value: ์˜์–ด ํ‘œํ˜„)
8+
9+
m, n = map(int, input().split())
10+
nums = list(range(m, n + 1)) # m ~ n๊นŒ์ง€์˜ ์ˆซ์ž ๋ฆฌ์ŠคํŠธ
11+
12+
# ์ˆซ์ž๋ฅผ ์˜์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์ „์— ์ €์žฅ
13+
for num in nums:
14+
temp = ""
15+
if num // 10 > 0: # ์‹ญ์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ
16+
temp += english[num // 10] + " "
17+
temp += english[num % 10]
18+
answer[num] = temp # ๋”•์…”๋„ˆ๋ฆฌ์— ์ถ”๊ฐ€
19+
20+
# ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„ 10๊ฐœ์”ฉ ์ถœ๋ ฅ
21+
cnt = 0
22+
for key, value in sorted(answer.items(), key=lambda x: x[1]): # value ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
23+
cnt += 1
24+
print(key, end=" ")
25+
if cnt == 10: # 10๊ฐœ ์ถœ๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ์ค„๋ฐ”๊ฟˆ
26+
print()
27+
cnt = 0

0 commit comments

Comments
ย (0)