Skip to content

Commit aa5020d

Browse files
authored
3주차 / 상급반 / 정지태
상급반 / 정지태 / ~3주차
2 parents ac607ae + 9e14087 commit aa5020d

File tree

12 files changed

+196
-0
lines changed

12 files changed

+196
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
n = int(input())
5+
6+
l1 = []
7+
for _ in range(n) :
8+
l2 = list(map(int, input().split(" ")))
9+
if len(l1) == 0:
10+
for i in range(len(l2)) :
11+
l1.append(l2[i])
12+
l1.sort()
13+
else :
14+
l2.sort()
15+
l2.reverse()
16+
for i in range(len(l2)) :
17+
if l2[i] > l1[i] :
18+
l1[i] = l2[i]
19+
l1.sort()
20+
21+
print(l1[0])

week1/datastructure/괄호의_값/JtJint.py

Whitespace-only changes.

week1/datastructure/문제_추천_시스템_Version_1/JtJint.py

Whitespace-only changes.

week1/datastructure/스택_수열/JtJint.py

Whitespace-only changes.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import sys
2+
from collections import deque
3+
4+
def divide3(a) :
5+
if a%3 == 0:
6+
return a//3
7+
else :
8+
return None
9+
10+
def divide2(a) :
11+
if a%2 ==0 :
12+
return a//2
13+
else :
14+
return None
15+
16+
def minus1(a) :
17+
return a-1
18+
19+
n = int(input())
20+
21+
que = deque([n])
22+
visited = set([n])
23+
cnt =0
24+
q = 0
25+
if n == 1 :
26+
print(cnt)
27+
quit()
28+
29+
while que :
30+
cnt+=1
31+
for _ in range(len(que)) :
32+
current = que.popleft()
33+
value1 = divide3(current)
34+
value2 = divide2(current)
35+
value3 = minus1(current)
36+
for i in [value1, value2, value3] :
37+
if i is None or i in visited :
38+
continue
39+
if i == 1 :
40+
print(cnt)
41+
quit()
42+
43+
que.append(i)
44+
visited.add(i)
45+
46+
47+
print(cnt)
48+

week2/dynamic_programming/가장_긴_증가하는_부분_수열/JtJint.py

Whitespace-only changes.

week2/dynamic_programming/동전/JtJint.py

Whitespace-only changes.

week2/dynamic_programming/양팔저울/JtJint.py

Whitespace-only changes.

week3/backtracking/N과_M_2/JtJint.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def backtrack(start, path):
2+
if len(path) == M:
3+
print(*path)
4+
return
5+
6+
for i in range(start, N + 1):
7+
backtrack(i, path + [i])
8+
9+
N, M = map(int, input().split())
10+
11+
backtrack(1, [])
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
def solveSudoku(sudokuList, i, j):
5+
if j == 9:
6+
j = 0
7+
i += 1
8+
if i == 9:
9+
return True # 성공적으로 끝났을 경우
10+
11+
if sudokuList[i][j] != 0:
12+
return solveSudoku(sudokuList, i, j + 1)
13+
14+
tmpList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
15+
tmpList = find3x3(sudokuList, i, j, tmpList)
16+
tmpList = findlinear(sudokuList, i, j, tmpList)
17+
18+
for num in tmpList:
19+
sudokuList[i][j] = num
20+
if solveSudoku(sudokuList, i, j + 1):
21+
return True # 정답을 찾았으면 바로 return
22+
23+
sudokuList[i][j] = 0 # 백트래킹 (원상복구)
24+
return False
25+
26+
def find3x3(sudokuList, x, y, tmpList):
27+
tmpX = (x // 3) * 3
28+
tmpY = (y // 3) * 3
29+
box = [sudokuList[tmpX + i][tmpY + j] for i in range(3) for j in range(3)]
30+
return [num for num in tmpList if num not in box]
31+
32+
def findlinear(sudokuList, x, y, tmpList):
33+
deleteset = set(sudokuList[x]) # 가로 검사
34+
deleteset.update(sudokuList[j][y] for j in range(9)) # 세로 검사
35+
return [num for num in tmpList if num not in deleteset]
36+
37+
l1 = [list(map(int, input().strip().split())) for _ in range(9)]
38+
solveSudoku(l1, 0, 0)
39+
40+
for row in l1:
41+
print(*row)

0 commit comments

Comments
 (0)