알고리즘/해커랭크 (2) 썸네일형 리스트형 [Hacker Rank] Magic Squre 해당 문제는 n이 3인 완전 탐색문제로 모든 경우의 수를 순열로 구한뒤, 가로, 세로, 대각선의 합이 일치하는지 확인후 일치한다면 이전 그래프와 차이점을 계산하여 최소값을 구하면 된다. import sys input = sys.stdin.readline s = [] for _ in range(3): s.append(list(map(int, input().split()))) def check(s): colsum = s[0][0] + s[1][0] + s[2][0] rowsum = sum(s[0]) cross1 = s[0][0] + s[1][1] + s[2][2] cross2 = s[0][2] + s[1][1] + s[2][0] for i in range(3): # check raw and col if i .. [HackerRank] Climbing the Leaderboard 해당 문제는 음수값으로 정렬하여 높은 점수를 정렬 시켜서 문제를 풀었습니다. 초기에 입력받을때 set자료구조를 활용하여 중복 값을 제거 시킨뒤, 플레이어를 한명씩 추가할때마다 bisect_left를 사용하여 플레이어의 rank위치 인덱스를 가져온뒤, 같은 점수가 있는 플레이어는 ranked 배열에 삽입하지않고 무시한다. 그렇지 않다면 rank배열에 찾은 인덱스에 값을 추가하면 된다. 이렇게 하면 이분 탐색으로 빠르게 문제를 해결 할 수 있다. 시간복잡도는 log(mlogn) 으로 m은 player의개수 logn은 rank의 개수이다. import sys from bisect import bisect_left input = sys.stdin.readline N = int(input()) temp = set.. 이전 1 다음