File tree Expand file tree Collapse file tree
codetree.ai 삼성전자 2025 상반기 오후 2번 문제 여왕 개미 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ def solve ():
2+ houses_pos = [0 ] # 여왕 개미의 집
3+ houses_deleted = [False ] # 여왕 개미의 집
4+
5+ Q = int (input ())
6+
7+ for _ in range (Q ):
8+ cmds = list (map (int , input ().split ()))
9+ cmd = cmds [0 ]
10+
11+ if cmd == 100 :
12+ for pos in cmds [2 :]:
13+ houses_pos .append (pos )
14+ houses_deleted .append (False )
15+ elif cmd == 200 :
16+ pos_new = cmds [1 ]
17+ houses_pos .append (pos_new )
18+ houses_deleted .append (False )
19+ elif cmd == 300 :
20+ pos_deleted = cmds [1 ]
21+ houses_deleted [pos_deleted ] = True
22+ elif cmd == 400 :
23+ cnt_ant = cmds [1 ]
24+
25+ mn_time , mx_time = 0 , 1000000000
26+ min_time = 0
27+
28+ while mn_time <= mx_time :
29+ mid_time = (mn_time + mx_time ) // 2
30+
31+ intervals = 0
32+ last_pos = - 1000000000
33+
34+ for idx in range (1 , len (houses_pos )):
35+ if houses_deleted [idx ]: # 삭제된 집인 경우 skip
36+ continue
37+
38+ crnt_pos = houses_pos [idx ]
39+
40+ if crnt_pos - last_pos > mid_time :
41+ last_pos = crnt_pos
42+ intervals += 1
43+
44+ if intervals <= cnt_ant :
45+ min_time = mid_time
46+ mx_time = mid_time - 1
47+ else :
48+ mn_time = mid_time + 1
49+
50+ print (min_time )
51+
52+ if __name__ == '__main__' :
53+ solve ()
Original file line number Diff line number Diff line change 1+ 7
2+ 100 5 2 4 7 8 15
3+ 400 1
4+ 400 2
5+ 200 50
6+ 400 2
7+ 300 5
8+ 400 3
Original file line number Diff line number Diff line change 1+ 13
2+ 6
3+ 13
4+ 2
Original file line number Diff line number Diff line change 1+ import sys
2+ from pathlib import Path
3+ from unittest import TestCase
4+ from main import solve
5+
6+
7+ class Test (TestCase ):
8+ def my_solve (self , testcase_input ):
9+ sys .stdin = open (testcase_input , 'r' )
10+ stdout = sys .stdout
11+ sys .stdout = open ('stdout.txt' , 'w' )
12+ solve ()
13+ sys .stdout .close ()
14+ sys .stdout = stdout
15+
16+ def test_solve (self , testcase_number : str ):
17+ self .my_solve ('test' + testcase_number + '.txt' )
18+ self .assertEqual (
19+ Path ('test' + testcase_number + '_answer.txt' ).read_text ().strip (),
20+ Path ('stdout.txt' ).read_text ().strip ())
21+
22+ def test1_solve (self ):
23+ self .test_solve ('1' )
You can’t perform that action at this time.
0 commit comments