diff --git "a/7\354\243\274\354\260\250/JSB/[W7]_9935.py" "b/7\354\243\274\354\260\250/JSB/[W7]_9935.py" new file mode 100644 index 0000000..1cea627 --- /dev/null +++ "b/7\354\243\274\354\260\250/JSB/[W7]_9935.py" @@ -0,0 +1,20 @@ +# W7: 9935 문자열 폭발 + +content = input() +bomb = input() + +stack = [] + +for char in content: + stack.append(char) + + if stack[-len(bomb):] == list(bomb): + for _ in range(len(bomb)): # 폭발 문자열이 있으면 해당 부분 제거 + stack.pop() + +# 결과 출력 +result = ''.join(stack) +if result: + print(result) +else: + print('FRULA') diff --git "a/7\354\243\274\354\260\250/[W7]_15686.py" "b/7\354\243\274\354\260\250/[W7]_15686.py" new file mode 100644 index 0000000..1da1da0 --- /dev/null +++ "b/7\354\243\274\354\260\250/[W7]_15686.py" @@ -0,0 +1,27 @@ +# W7: 15686 치킨 배달 + +from itertools import combinations + +N, M = map(int, input().split()) +city = [list(map(int, input().split())) for _ in range(N)] +result = 999999 +house = [] # 집의 좌표 +chicken = [] # 치킨집의 좌표 + +for i in range(N): + for j in range(N): + if city[i][j] == 1: + house.append([i, j]) + elif city[i][j] == 2: + chicken.append([i, j]) + +for chi in combinations(chicken, M): # M개의 치킨집 선택 + temp = 0 # 도시의 치킨 거리 + for h in house: + chi_len = 999 # 각 집마다 치킨 거리 + for j in range(M): + chi_len = min(chi_len, abs(h[0] - chi[j][0]) + abs(h[1] - chi[j][1])) + temp += chi_len + result = min(result, temp) + +print(result) \ No newline at end of file