본문 바로가기

스파르타코딩클럽/항해99

항해 25일차 TIL

1. 이제 1/4 왔다.

지금까지 온 것 * 3만큼만 더 가면 된다.

 

 

2. 오늘은 즐거운 시험날!

프로그래머스에서 퐈일명 정열을 풀었다. 음... 팀원분의 천재적인 풀이를 보니 내 접근 자체는 나쁘지 않았던 것 같은데... 중간에 조건을 어떻게 걸어주냐에 따라 결과가 달라져부렀어... 그래도 아주 못따라가고 있는 것 같지는 않다. 남들은 고속버스 타고 가고 있는거 열심히 자전거 밟으면서 뒤쫓아가는 느낌이지만 어쨌든 가고는 있다구...!

 

근데 문제는 결국 못 풀었다. 대체 왜...? 무엇이 문제냐...?

import re

def merge(arr1, arr2):
    result = []
    i = j = 0
    while i < len(arr1) and j < len (arr2):
        a = arr1[i].split('.')[0].split(' ')[0]
        b = arr2[j].split('.')[0].split(' ')[0]
        a_letters = ''.join([str(ord(x) - 96) for x in re.sub('[^a-z]', '', a.lower())])
        a_numbers = re.sub('[^0-9]', '', a)
        b_letters = ''.join([str(ord(x) - 96) for x in re.sub('[^a-z]', '', b.lower())])
        b_numbers = re.sub('[^0-9]', '', b)

        if a_letters == b_letters and int(a_numbers) < int(b_numbers):
            result.append(arr1[i])
            i += 1
        elif a_letters < b_letters:
            result.append(arr1[i])
            i += 1
        else:
            result.append(arr2[j])
            j += 1

    while i < len(arr1):
        result.append(arr1[i])
        i += 1
    while j < len(arr2):
        result.append(arr2[j])
        j += 1

    return result

def solution(lst):
    if len(lst) <= 1:
        return lst
    mid = len(lst) // 2
    L = lst[:mid]
    R = lst[mid:]

    return merge(solution(L), solution(R))

 

 

 

3. 오늘도 적당히 중간은 했다

막 많은걸 하진 못했지만, 그래도 스케쥴에 적어둔 것은 이코테 문제풀기 빼곤 다 했다. 이코테가 생각보다 문제 난이도가 훅훅 올라가서; 다시 앞부분부터 천천히 공부하기로 했다. 오늘도 cs책 읽다 자야지...

음 근데 여기서 고민. js 딥다이브 책이 도착했는데, 여기도 cs 지식이 있었다. js도 공부해야하고, cs도 공부해야하니 그냥 딥다이브 책을 읽을까? 아니면 일단 cs부터 천천히 공부할까? 음...

'스파르타코딩클럽 > 항해99' 카테고리의 다른 글

항해 27일차 TIL  (0) 2022.02.05
항해 26일차 TIL  (0) 2022.02.04
항해 24일차 TIL  (0) 2022.02.02
항해 23일차  (0) 2022.02.01
항해 22일차 TIL  (0) 2022.01.31