Pewarta Proxy

📋 Server Request & Proxy Logs

Loading active proxy settings...
Developed by Khairul Adha (adhexa.id)
Mengambil log server...

⚙️ Pengaturan Proxy Target

Skip to content

Commit 5d2e123

Browse files
committed
1차_17136
1 parent 7a56531 commit 5d2e123

2 files changed

Lines changed: 97 additions & 25 deletions

File tree

Binary file not shown.

‎python/sangil_week2/baek17136.py‎

Lines changed: 97 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44

55
# checkpoint
66
# 큰 상자에 포함될 수록 절약된다.
7+
8+
import pytest
9+
710
import sys
811

912
'''
10-
# →⌟↑
13+
# →⌟↑
1114
dr = [(0, 1), (1, 0), (0, -1)]
1215
def scan_sq(current, space, visited):
1316
cx, cy = current
14-
# SCAN →⌟↑
17+
# SCAN →⌟↑
1518
#####
1619
# 스택에 방문한 데 넣어놓고, 방문하면서 visited 보다 크면 넣기
1720
#####
@@ -21,54 +24,123 @@ def stick_sq(current, space, visited):
2124
'''
2225

2326
# 그냥 아예 처음부터 큰 거 붙이기
27+
import copy
2428

2529

2630
def stick_sq(current, size, space, sticked):
2731
cx, cy = current
32+
# c_sticked = copy.deepcopy(sticked) # 주소값 가져와서 바로 변경?
2833
square = True
2934
visited = []
30-
for i in range(size): # 아래 세줄을 파이썬 하게 바꾼다면?
35+
for i in range(size): # 아래 세줄을 파이썬 하게 바꾼다면?
3136
for j in range(size):
3237
x, y = (cx+i, cy+j)
33-
if sticked[x][y] == 0 and space[x][y] == 0:
38+
if sticked[x][y] == 0 and space[x][y] == 1:
39+
visited.append((x, y))
40+
continue
41+
else:
3442
square = False
3543
break
36-
visited.append((x, y))
37-
if sqaure = False:
38-
return space, sticked, 0 # 계속해서 공간값을 넘겨주는게 좋은 걸까?
39-
else:
40-
while visited:
41-
x, y = visited.pop()
42-
sticked[x][y] == 1
43-
return space, sticked, 1
44-
45-
46-
def solution(square):
47-
size = len(square)
48-
space = square # 궁금증.. 값 변경해주기 위해서 이렇게!?!? iterator!?
44+
if square == False:
45+
return 0, [] # 계속해서 공간값을 넘겨주는게 좋은 걸까?
46+
return 1, visited
47+
48+
49+
def solution(square): # size는 색종이 크기, num은 갯
50+
size = 5
51+
num = 5
4952
ans = 0
50-
sticked = [[0]*size for _ in range(size)]
53+
sticked = [[0]*len(square) for _ in range(len(square))]
5154

5255
# for s in reversed(range(size + 1)) # 이것보다 직관적인 것 같아서..
53-
for s in range(size, 0, -1): # 언어에 대한 궁금증.. 왜 마지막 값은 포함 안 될까?
56+
for s in range(5, 0, -1): # 언어에 대한 궁금증.. 왜 마지막 값은 포함 안 될까?
5457
# 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
5558
# 0, 0~1, 0~2, 0~3, 0~4
56-
for x in range(s+1):
57-
for y in range(s+1):
58-
space, visited, ans_add = stick_sq((x, y), size, square, visited)
59-
ans += ans_add
59+
count = 5
60+
for x in range(10-s+1): # 10-s+1
61+
for y in range(10-s+1):
62+
if square[x][y] == 0:
63+
continue
64+
if count == 0:
65+
if s != 1:
66+
break
67+
elif square[x][y] == 1 and sticked[x][y] == 0:
68+
return -1
69+
success, visited = stick_sq((x, y), s, square, sticked)
70+
if success:
71+
ans += 1
72+
while visited:
73+
x, y = visited.pop()
74+
sticked[x][y] = 1
75+
count -= 1
6076
return ans
6177

6278

6379
def main():
6480
stdin = sys.stdin
65-
square = [map(int, stdin.readline().split()) for _ in range(10)]
66-
solution(square)
81+
# 'map' object is not subscriptable
82+
square = [list(map(int, stdin.readline().split())) for _ in range(10)]
83+
print(solution(square))
6784

6885

6986
if __name__ == "__main__":
7087
main()
7188

89+
# stdin params 입력..
90+
91+
92+
@pytest.mark.parametrize(
93+
"square",
94+
[
95+
# [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
96+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
97+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
98+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
99+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
100+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
101+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
102+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
103+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
104+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
105+
# ],
106+
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
107+
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
108+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
109+
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
110+
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
111+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
112+
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
113+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
114+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
115+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
116+
# [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
117+
# [0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
118+
# [0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
119+
# [0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
120+
# [0, 0, 0, 1, 1, 1, 1, 0, 0, 0],
121+
# [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
122+
# [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
123+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
124+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
125+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
126+
# [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
127+
# [0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
128+
# [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
129+
# [0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
130+
# [0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
131+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
132+
# [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
133+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
134+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
135+
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
136+
# ]
137+
]
138+
)
139+
def test_solution(square):
140+
assert solution(square) == 4
141+
# assert solution(square) == -1
142+
143+
72144
'''testcase
73145
0 0 0 0 0 0 0 0 0 0
74146
0 0 0 0 0 0 0 0 0 0

0 commit comments

Comments
 (0)