최초 풀이 - 오답, 예시 케이스 통과

def solution(elements):
    answer = []
    for i in range(len(elements)):
        count = 0
        tmp = []
        for j in range((i + 1) * len(elements)):
            j = (j % len(elements))
            tmp.append(elements[j])
            
            if count == i:
                print(sum(tmp))
                answer.append(sum(tmp))
                tmp = []
                count = 0
            else:
                count += 1
            
        print()
        
    return len(list(set(answer)))

 

정답 풀이

def solution(elements):
    result = set()
    for i in range(len(elements)):
        for j in range(len(elements)):
            result.add(sum((elements * 2)[j : j + i + 1]))
    return len(result)

나의 풀이

def solution(record):
    tmp = []
    data = {}
    for i in record:
        cur = i.split(" ")
        if cur[0] == 'Enter':
            if cur[1] in data:
                if data[cur[1]] != cur[2]:
                    data[cur[1]] = cur[2]
                tmp.append((cur[1], 0))
            else:
                data[cur[1]] = cur[2]
                tmp.append((cur[1], 0))

        elif cur[0] == 'Leave':
            tmp.append((cur[1], 1))

        else:
            data[cur[1]] = cur[2]

    answer = []
    for i, j in tmp:
        if j == 0:
            answer.append(data[i] + "님이 들어왔습니다.")
        else:
            answer.append(data[i] + "님이 나갔습니다.")

    return answer

나의 코드

from itertools import permutations

def check(k, dungeon):
    count = 0
    for i in dungeon:
        if k >= i[0]:
            k -= i[1]
            count += 1
    return count

def solution(k, dungeons):
    answer = 0

    for i in permutations(dungeons, len(dungeons)):
        cur = 0
        if check(k, i):
            cur = check(k, i)
        answer = max(answer, cur)

    return answer

 

내 피로도는 0....

나의 코드

def convert(num, base):
    import string
    tmp = string.digits + string.ascii_lowercase
    q, r = divmod(num, base)
    if q == 0:
        return tmp[r]
    else:
        return convert(q, base) + tmp[r]


def isprime(n):
    for i in range(2, int(n ** .5) + 1):
        if n % i == 0:
            return False
    return True

def solution(n, k):
    answer = 0
    cur = convert(n, k).split("0")

    for i in cur:
        if len(i) == 0 or int(i) < 2:
            continue

        if isprime(int(i)):
            answer += 1

    return answer

+ Recent posts