-
파괴되지 않은 건물코딩 테스트/Level 3 2022. 1. 21. 21:08반응형
https://programmers.co.kr/learn/courses/30/lessons/92344
무지성 코딩
def solution(board, skills): for skill in skills: for row in range(skill[1], skill[3] + 1): for column in range(skill[2], skill[4] + 1): if skill[0] == 1: board[row][column] -= skill[5] else: board[row][column] += skill[5] answer = 0 for row in range(len(board)): for column in range(len(board[0])): if board[row][column] > 0: answer += 1 return answer
imos법
https://driip.me/65d9b58c-bf02-44bf-8fba-54d394ed21e0
def solution(board, skills): temp = [[0 for _ in range(len(board[0]) + 1)] for _ in range(len(board) + 1)] for _type, r1, c1, r2, c2, degree in skills: temp[r1][c1] += (degree if _type == 2 else -degree) temp[r1][c2 + 1] += (-degree if _type == 2 else degree) temp[r2 + 1][c1] += (-degree if _type == 2 else degree) temp[r2 + 1][c2 + 1] += (degree if _type == 2 else -degree) answer = 0 for row in range(len(board)): for column in range(len(board[0])): temp[row][column + 1] += temp[row][column] for column in range(len(board[0])): for row in range(len(board)): temp[row + 1][column] += temp[row][column] for row in range(len(board)): for column in range(len(board[0])): if board[row][column] + temp[row][column] > 0: answer += 1 return answer
정확성 테스트 테스트 1 〉 통과 (0.01ms, 10.4MB) 테스트 2 〉 통과 (0.06ms, 10.2MB) 테스트 3 〉 통과 (0.19ms, 10.2MB) 테스트 4 〉 통과 (0.38ms, 10.2MB) 테스트 5 〉 통과 (0.86ms, 10.4MB) 테스트 6 〉 통과 (0.97ms, 10.3MB) 테스트 7 〉 통과 (1.56ms, 10.4MB) 테스트 8 〉 통과 (1.89ms, 10.3MB) 테스트 9 〉 통과 (2.46ms, 10.5MB) 테스트 10 〉 통과 (3.83ms, 10.4MB) 효율성 테스트 테스트 1 〉 통과 (934.25ms, 136MB) 테스트 2 〉 통과 (948.60ms, 136MB) 테스트 3 〉 통과 (945.24ms, 136MB) 테스트 4 〉 통과 (877.94ms, 136MB) 테스트 5 〉 통과 (619.42ms, 102MB) 테스트 6 〉 통과 (634.25ms, 102MB) 테스트 7 〉 통과 (641.40ms, 102MB)
반응형