일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 14499번
- 16234번
- 12869번
- 미세먼지 안녕!
- 경주로 건설
- QueryDSL 기초
- 17144번
- 키패드 누르기
- 프로그래머스
- python
- SW Expert Academy
- 빛의 경로 사이클
- 어른 상어
- 수식 최대화
- 백준 알고리즘
- 1038번
- 9095번
- 2020 카카오 인턴십
- 15686번
- 스타트 택시
- 12865번
- 1789번
- 감소하는 수
- HTML 기초
- 파이썬
- 19238번
- 거울 설치
- 베스트엘범
- SW ExpertAcademy
- 보석 쇼핑
Archives
- Today
- Total
보물창고 블로그
SW Expert Academy 2117. [모의 SW 역량테스트] 홈 방범 서비스 풀이 With Python 본문
알고리즘 풀이/SW Expert Academy
SW Expert Academy 2117. [모의 SW 역량테스트] 홈 방범 서비스 풀이 With Python
홋 메 2020. 3. 26. 13:17728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제의 핵심은 손해를 보지 않으면서 홈 방범 서비스를 가장 많은 집들에 제공하는 서비스 영역을 찾았을 때,
그때의 서비스를 제공받는 집들의 수를 찾는 것이다. 먼저 도시의 집의 개수를 입력받아서 서비스 영역의 운영비용을 손해 보지 않는 선에서 탐색을 진행한다. 그리고 맵의 각 포인트마다 서비스 영역을 탐색하여 서비스를 손해보지 않으면 정답 값과 비교해서 더 큰 것으로 정답 값을 경신하였다. 아래는 해결한 코드이다.
def solution(map1, n, m, homes):
dx = [-1, 0, 1, 0]
dy = [0, -1, 0, 1]
answer = 0
k = 1
while k * k + (k - 1) * (k - 1) <= homes * m:
for i in range(n):
for j in range(n):
sub = 0
for x in range(-(k - 1), k):
for y in range(-(k - 1), k):
if -1 < i + x < n and -1 < j + y < n and abs(x) + abs(y) <= k - 1:
if map1[i + x][j + y] == 1:
sub += 1
if sub * m >= k * k + (k - 1) * (k - 1) and answer < sub:
answer = sub
k+=1
return answer
t = int(input())
for test in range(1, t + 1):
n, m = map(int, input().split())
map1 = []
homes = 0
for _ in range(n):
s = list(map(int, input().split()))
for i in range(n):
if s[i] == 1:
homes += 1
map1.append(s)
ans = solution(map1, n, m, homes)
print('#{} {}'.format(test,ans))
'알고리즘 풀이 > SW Expert Academy' 카테고리의 다른 글
SW Expert Academy 5658. [모의 SW 역량테스트] 보물상자 비밀번호 풀이 With Python (0) | 2020.03.26 |
---|---|
SW Expert Academy 4012. [모의 SW 역량테스트] 요리사 풀이 With Python (0) | 2020.03.26 |
SW Expert Academy 2105. [모의 SW 역량테스트] 디저트 카페 풀이 With Python (0) | 2020.03.26 |
SW Expert Academy 2477. [모의 SW 역량테스트] 차량 정비소 풀이 With Python (0) | 2020.03.25 |
SW Expert Academy 1949. [모의 SW 역량테스트] 등산로 조성 풀이 With Python (0) | 2020.03.25 |
Comments