[TIL] # 33 코드카타 1주차

ddalkigum·2021년 1월 1일
2

알고리즘

목록 보기
15/15
post-thumbnail

1일차

문제

target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.

풀이

def two_sum(nums, target):
    dictionary = {}
    for num in range(len(nums)):
        number = target - nums[num]    
        dictionary[number] = num
        if number in dictionary:
            return [dictionary[number], nums.index(number)]

for 문을 두번쓰게 되면 쉽게 풀리는 문제이긴 하지만,
그렇게 되면 시간복잡도가 O(N^2)이 되기 때문에

dictionary를 이용해서 풀이를 진행

첫 코드카타 문제였는데, 20분 제한시간내에 못풀어서 오늘 다시 풀어봄...
저 인텍스를 이용한다는 생각을 못했다

리턴값이 자꾸 [0,0] 이어서 왜 그러지 하면서 고민햇던 문제

다른 분들은 너무 잘해서 내가 초라해진 느낌이엇다 😂


2일차

문제

풀이

def reverse(number):
    arr = list(str(number))[::-1]
    arr = "".join(arr)
    if number < 0:
        return -int(arr[:-1]) 
    return int(arr)

조금더 간단하게 풀 수 있지 않을까 생각을 했는데,,,
이 이상은 생각이 안난다

마이너스를 이렇게 처리하지 않으면 코드 길이가 늘어나서 바로 리턴을 해주는 방식을 사용했다

3일차

문제

풀이

무슨 말인지 문제가 이해가 안됨...


4일차

문제

풀이

def same_reverse(num):
    arr = (str(num))
    if arr[::-1] == arr:
        return True
    return False

뒤집어서 확인


profile
딸기검 -본캐🐒 , 김준형 - 현실 본캐 🐒

1개의 댓글