나의 코드

import heapq

def solution(n, works):
    if n >= sum(works):
        return 0
    
    answer = 0
    works = [-w for w in works]
    heapq.heapify(works)
    
    for i in range(n):
        cur = heapq.heappop(works)
        cur += 1
        heapq.heappush(works, cur)
    
    return sum([i ** 2 for i in works])

 

풀이 방법

매 연산마다 정렬시 시간 초과, 최소 힙을 이용해 구현

나의 코드

import sys
input = sys.stdin.readline

n = int(input())
x = []
y = []
s = []

for _ in range(6):
    t, cur = map(int, input().split())
    s.append([t, cur])
    if t in [1, 2]:
        x.append(cur)
    else:
        y.append(cur)

l = []
for i in range(6):
    if s[i][0] == s[(i + 2) % 6][0]:
      l.append(s[(i + 1) % 6][1])
print(((max(x) * max(y)) - (l[0] * l[1])) * n)

나의 코드

import sys
input = sys.stdin.readline
data = input().strip()
answer = set()

for i in range(len(data)):
    for j in range(i, len(data)):
        answer.add(data[i:j+1])

print(len(answer))

 

풀이 방법

set 자료형 사용

나의 코드

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
a = set(list(map(int, input().split())))
b = set(list(map(int, input().split())))

print(len((a.difference(b)).union((b.difference(a)))))

 

풀이 방법

set 자료형

 

print(len((a - b) | (b - a)))

위와 같이 표현할 수도 있다.  

+ Recent posts