본문 바로가기
전공/coding test

코딩테스트5

by import ysy 2022. 5. 31.

오늘은 오랜만에 코테. 오늘은 세 문제정도 리뷰하려고 함

 

def solution(a,b):

    return sum([x*y for x,y in zip(a,b)])

 

solution = lambda x, y: sum(a*b for a, b in zip(x,y))

 

 

정말 세상은 넓고 잘하는 사람은 많다.

보니까 

 

def solution(absolutes, signs):
    answer = 0
    for i, a in enumerate(absolutes):
        if signs[i]:
            answer += absolutes[i]
        else:
            answer -= absolutes[i]
    return answer

def solution(absolutes, signs):

    return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))

TypeError: 'int' object is not subscriptable

이런 에러가 떴다.

int 형을 인덱싱 할 수 없다는 의미이고

인덱싱 하는 대상이 int인지 list인지 확인해보면 된다.(https://joey09.tistory.com/118)

반응형

출처: https://joey09.tistory.com/118 [joie de vivre:티스토리]

라고 한다.

import math
def solution(nums):
    answer = 0
    a = len(nums)
    print(a)
    for i in range(a):
        for j in range(i+1,a):
            for k in range(j+1,a):
                num = 0
                num = nums[i] + nums[j] + nums[k]
                
                if is_prime(num):
                    answer += 1
                    # print(nums[i], nums[j], nums[k])
    return answer

def is_prime(x):
    for i in range(2, int(math.sqrt(x)) + 1):
        if x % i == 0:
            return False
    return True

완전 대단한

재밌는 것도 봤다.

지금은 막혔는데

임의로 만든 Class를 리턴하고 채점방식이 if 리턴값==정답값 을 통해 이루어지는것을 이용하여 __eq__메소드를 재정의하여 어떤값과 비교해도 true가 나오도록 한 편법입니다.

출처

이번엔

def solution(participant, completion):
    for a in completion:
        participant.remove(a)
    
    return participant[0]

이거다. 효용성측면에서 탈락했다. 

a_sub_b = [x for x in a if x not in b]

 

def solution(participant, completion):    
    return list(set(participant)-set(completion))

이번엔 될 줄 알았는데, 중복도 모두 제거된다ㅜㅜ

반응형

댓글