Skip to content

Commit 299bf38

Browse files
committed
codetree.ai 삼성전자 2025 하반기 오후 2번 문제 가로등 설치
문제 링크: https://www.codetree.ai/ko/frequent-problems/all/problems/street-light-installation
1 parent dab07cd commit 299bf38

4 files changed

Lines changed: 36 additions & 11 deletions

File tree

codetree.ai 삼성전자 2025 하반기 오후 2번 문제 가로등 설치/main.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,32 @@ def solve():
1919
M += 1
2020
mx_M += 1
2121
new_streetlight = [0, 0, M]
22-
for idx in range(len(streetlights) - 1):
22+
for idx in range(len(streetlights)):
23+
local_delta, local_Ln, local_idx = 0, 0, 0
24+
2325
if idx == 0:
24-
left, right = 1, streetlights[idx + 1][1]
26+
right = streetlights[idx + 1][1]
27+
28+
local_delta = right - streetlights[idx][1]
29+
local_Ln = math.ceil((streetlights[idx][1] + right) / 2)
30+
local_idx = idx + 1
2531
elif 0 < idx < len(streetlights) - 1:
2632
left, right = streetlights[idx - 1][1], streetlights[idx + 1][1]
2733

28-
local_delta, local_Ln, local_idx = 0, 0, 0
34+
if streetlights[idx][1] - left >= right - streetlights[idx][1]:
35+
local_delta = streetlights[idx][1] - left
36+
local_Ln = math.ceil((left + streetlights[idx][1]) / 2)
37+
local_idx = idx
38+
else:
39+
local_delta = right - streetlights[idx][1]
40+
local_Ln = math.ceil((streetlights[idx][1] + right) / 2)
41+
local_idx = idx + 1
42+
else: # if idx == len(streetlights)-1
43+
left = streetlights[idx - 1][1]
2944

30-
if streetlights[idx][1] - left >= right - streetlights[idx][1]:
3145
local_delta = streetlights[idx][1] - left
3246
local_Ln = math.ceil((left + streetlights[idx][1]) / 2)
3347
local_idx = idx
34-
else:
35-
local_delta = right - streetlights[idx][1]
36-
local_Ln = math.ceil((streetlights[idx][1] + right) / 2)
37-
local_idx = idx + 1
3848

3949
if new_streetlight[0] < local_delta:
4050
new_streetlight[0], new_streetlight[1], new_streetlight[2] = local_delta, local_Ln, local_idx
@@ -43,9 +53,11 @@ def solve():
4353
new_streetlight[0], new_streetlight[1], new_streetlight[2] = local_delta, local_Ln, local_idx
4454

4555
if new_streetlight[2] < len(streetlights):
46-
streetlights = streetlights[0:new_streetlight[2]] + [[mx_M, new_streetlight[1]]] + streetlights[new_streetlight[2]:]
56+
# streetlights = streetlights[0:new_streetlight[2]] + [[mx_M, new_streetlight[1]]] + streetlights[new_streetlight[2]:]
57+
streetlights.insert(new_streetlight[2], [mx_M, new_streetlight[1]])
4758
else:
48-
streetlights = streetlights + [[M, new_streetlight[1]]]
59+
# streetlights = streetlights + [[M, new_streetlight[1]]]
60+
streetlights.append([M, new_streetlight[1]])
4961

5062
elif cmd == 300:
5163
D = tmps[1]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
8
2+
100 17 2 1 17
3+
200
4+
200
5+
200
6+
300 1
7+
200
8+
300 4
9+
400
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
12

codetree.ai 삼성전자 2025 하반기 오후 2번 문제 가로등 설치/test_main.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,7 @@ def test1_solve(self):
2323
self.test_solve('1')
2424

2525
def test2_solve(self):
26-
self.test_solve('2')
26+
self.test_solve('2')
27+
28+
def test3_solve(self):
29+
self.test_solve('3')

0 commit comments

Comments
 (0)