Skip to content

Commit 2c4f48c

Browse files
authored
Merge pull request #120 from YoonYn9915/main
YoonYn9915 / 1월 2주차 / 3문제
2 parents b7eb73f + 5a2067f commit 2c4f48c

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def solution(targets):
2+
answer = 0
3+
targets.sort(key=lambda x: [x[1], x[0]])
4+
5+
s = e = 0
6+
for target in targets:
7+
if target[0] >= e:
8+
answer += 1
9+
e = target[1]
10+
11+
return answer
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# 배열 rotation
2+
def rotation(arr):
3+
retArr = [[0] * len(arr) for _ in range(len(arr))]
4+
# 11 > 13 / 12 > 23 / 13 > 33
5+
for i in range(len(arr)):
6+
for j in range(len(arr)):
7+
retArr[j][len(arr) - 1 - i] = arr[i][j]
8+
return retArr
9+
10+
11+
# 정값 체크
12+
def checkSol(keyArr, lockArr, x, y):
13+
keySize = len(keyArr)
14+
lockSize = len(lockArr)
15+
16+
boardSize = lockSize * 3
17+
board = [[0] * (boardSize) for _ in range(boardSize)]
18+
19+
start = lockSize - 1
20+
end = start + lockSize
21+
22+
# boardArr 에 lock 삽입
23+
for i in range(lockSize):
24+
for j in range(lockSize):
25+
board[start + i][start + j] += lockArr[i][j]
26+
27+
# boardArr 에 key 삽입
28+
for i in range(keySize):
29+
for j in range(keySize):
30+
board[i + x][j + y] += keyArr[i][j] # 값 복사
31+
32+
# 전부 1인지 체크
33+
for i in range(start, end):
34+
for j in range(start, end):
35+
if board[i][j] != 1:
36+
return False
37+
return True
38+
39+
40+
def solution(key, lock):
41+
for _ in range(4):
42+
43+
# 값 이동
44+
for x in range((len(lock) * 2) - 1):
45+
for y in range((len(lock) * 2) - 1):
46+
if checkSol(key, lock, x, y) == True:
47+
return True
48+
49+
# key 회전
50+
key = rotation(key)
51+
52+
return False
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
def solution(commands):
2+
answer = []
3+
graph = [[(i, j) for j in range(50)] for i in range(50)]
4+
value = [["EMPTY"] * 50 for _ in range(50)]
5+
for command in commands:
6+
command = command.split(' ')
7+
if command[0] == 'UPDATE':
8+
if len(command) == 4:
9+
r,c,value = int(command[1])-1,int(command[2])-1,command[3]
10+
x,y = graph[r][c]
11+
value[x][y] = value
12+
elif len(command) == 3:
13+
value1, value2 = command[1], command[2]
14+
for i in range(50):
15+
for j in range(50):
16+
if value[i][j] == value1:
17+
value[i][j] = value2
18+
elif command[0] == 'MERGE':
19+
r1,c1,r2,c2 = int(command[1])-1, int(command[2])-1, int(command[3])-1, int(command[4])-1
20+
x1,y1 = graph[r1][c1]
21+
x2,y2 = graph[r2][c2]
22+
if value[x1][y1] == "EMPTY":
23+
value[x1][y1] = value[x2][y2]
24+
for i in range(50):
25+
for j in range(50):
26+
if graph[i][j] == (x2,y2):
27+
graph[i][j] = (x1,y1)
28+
elif command[0] == 'UNMERGE':
29+
r, c = int(command[1])-1,int(command[2])-1
30+
x, y = graph[r][c]
31+
tmp = value[x][y]
32+
for i in range(50):
33+
for j in range(50):
34+
if graph[i][j] == (x,y):
35+
graph[i][j] = (i,j)
36+
value[i][j] = "EMPTY"
37+
value[r][c] = tmp
38+
elif command[0] == 'PRINT':
39+
r, c = int(command[1])-1, int(command[2])-1
40+
x, y = graph[r][c]
41+
answer.append(value[x][y])
42+
return answer

0 commit comments

Comments
 (0)