Skip to content

Commit 9cdddb9

Browse files
committed
찬민 백준, 프로그래머스 숙제
1 parent b7e8555 commit 9cdddb9

File tree

7 files changed

+196
-0
lines changed

7 files changed

+196
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from _collections import deque
2+
3+
def solution(n, computers):
4+
answer = 0
5+
visited = [False for i in range(n)]
6+
for i in range(n):
7+
if visited[i] == False:
8+
bfs(n, computers, i, visited)
9+
answer += 1
10+
11+
return answer
12+
13+
def bfs(n, computers, i, visited):
14+
visited[i] = True
15+
q = deque()
16+
q.append(i)
17+
while len(q) > 0:
18+
now = q.popleft()
19+
visited[now] = True
20+
for connect in range(n):
21+
if connect != now and computers[now][connect] == 1:
22+
if visited[connect] == False:
23+
q.append(connect)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def solution(triangle):
2+
3+
for i in range(1, len(triangle)):
4+
for j in range(i+1):
5+
if j == 0:
6+
triangle[i][j] += triangle[i-1][j]
7+
elif j == i:
8+
triangle[i][j] += triangle[i - 1][j-1]
9+
else:
10+
triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j])
11+
12+
13+
return max(triangle[-1])
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
def solution(n, results):
2+
answer = 0
3+
4+
return answer
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from itertools import permutations
2+
import math
3+
4+
def solution(numbers):
5+
answer = 0
6+
7+
arr = list(numbers)
8+
for i in range(2, len(numbers) + 1):
9+
pm = list(permutations(numbers, i))
10+
for j in pm:
11+
if len(j) <= len(numbers):
12+
arr.append(''.join(j))
13+
14+
15+
# arr = list(set(arr))
16+
# print(arr)
17+
18+
arr = list(set([int(x) for x in arr]))
19+
#print(arr)
20+
21+
for i in arr:
22+
if check(i):
23+
answer += 1
24+
25+
return answer
26+
27+
def check(n):
28+
k = math.sqrt(n)
29+
if n < 2:
30+
return False
31+
32+
for i in range(2, int(k)+1):
33+
if n % i == 0:
34+
return False
35+
return True
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
n = int(input())
2+
arr = []
3+
4+
for _ in range(n):
5+
arr.append(input().split())
6+
7+
arr.sort(key=lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))
8+
9+
# 정렬된 학생 정보에서 이름만 출력
10+
for student in arr:
11+
print(student[0])
12+
13+
14+
'''
15+
12
16+
Junkyu 50 60 100
17+
Sangkeun 80 60 50
18+
Sunyoung 80 70 100
19+
Soong 50 60 90
20+
Haebin 50 60 100
21+
Kangsoo 60 80 100
22+
Donghyuk 80 60 100
23+
Sei 70 70 70
24+
Wonseob 70 70 90
25+
Sanghyun 70 70 80
26+
nsj 80 80 80
27+
Taewhan 50 60 90
28+
'''
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# n = int(input())
2+
# a = list(map(int, input().split()))
3+
# a.sort()
4+
#
5+
# print(a[(n - 1) // 2])
6+
7+
8+
9+
n = int(input())
10+
arr = []
11+
arr = list(map(int, input().split()))
12+
arr.sort()
13+
answer = 0
14+
for i in range(n):
15+
answer += arr[i]
16+
17+
answer /= n
18+
19+
min_v = 1e9
20+
min_index = 0
21+
22+
23+
for i in reversed(range(n)):
24+
if min_v >= abs(arr[i]-answer):
25+
min_v = min(min_v, abs(arr[i] - answer))
26+
min_index = i
27+
28+
29+
print(arr[min_index])
30+
31+
'''
32+
4
33+
1 5 6 10
34+
'''
35+
#1 2 10 11
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import heapq
2+
3+
n = int(input())
4+
heap = []
5+
6+
for i in range(n):
7+
data = int(input())
8+
heapq.heappush(heap, data)
9+
10+
result = 0
11+
12+
while len(heap) != 1:
13+
a = heapq.heappop(heap)
14+
b = heapq.heappop(heap)
15+
sum = a + b
16+
result += sum
17+
heapq.heappush(heap, sum)
18+
19+
print(result)
20+
21+
# n = int(input())
22+
#
23+
# arr = []
24+
#
25+
# for i in range(n):
26+
# arr.append(int(input()))
27+
#
28+
# arr.sort()
29+
#
30+
#
31+
#
32+
# if n > 1:
33+
# answer = arr[0] + arr[1]
34+
# for i in range(2, n):
35+
# answer += answer
36+
# answer += arr[i]
37+
# #print('answer = ', answer)
38+
#
39+
# if n < 2:
40+
# answer = arr[0]
41+
#
42+
# print(answer)
43+
'''
44+
10
45+
20 30
46+
30 60 90
47+
40 100 190 280
48+
50 150 340
49+
60 210 550
50+
70 280
51+
52+
10
53+
20
54+
40
55+
50
56+
57+
60 180
58+
'''

0 commit comments

Comments
 (0)