본문 바로가기
기록/TIL

[TIL] 231019 - 데브코스 4일차

by 투말치 2023. 10. 19.

목차

    반응형

    학습 내용

    알고리즘 문제 풀이

    • 해시 : 완주하지 못한 선수
      - 해시 테이블 = 키를 값에 매핑할 수 있는 자료 구조
    • 탐욕법(Greedy) : 체육복, 큰 수 만들기
    • 정렬 : 가장 큰 수

     

    새로 알게 된 것

     

    리스트의 일정 구간의 값을 변경하고 싶을 때 슬라이싱해서 해당 부분에 리스트로 값 할당하기

     

    체육복 문제 中

    #<체육복 빌려주기 처리> - 내가 짠 코드
    
        for i in range(1, n+1):
            if s[i-1]==0 and s[i]==2:
                s[i-1]=1
                s[i]=1
            elif s[i+1]==0 and s[i]==2:
                s[i+1]=1
                s[i]=1
            
        return len([x for x in s[1:-1] if x>0])

     

    체육복을 빌려주는 코드를 작성할 때 나는 그냥 하나씩 값을 넣었다. 강의에서는 다른 코드를 작성했던 것 같은데 다른 방법이 생각나지 않았다.

     

    풀이 코드를 보니까 해당 부분을 슬라이싱해서 리스트 형태로 값을 변경했다.

    #<체육복 빌려주기 처리> - 풀이 코드
        for i in range(1, n+1):
            if s[i-1]==0 and s[i]==2:
            	s[i-1:i+1]=[1,1]
    
            elif s[i+1]==0 and s[i]==2:
            	s[i:i+2]=[1,1]
    
        return len([x for x in s[1:-1] if x>0])

     

     

     

    느낀 점

    해시, 그리디의 개념을 명확하게 알게 되었다.

    알고리즘 풀 때마다 느끼는 거지만 간결하고 적절한 변수 이름을 짓는 게 어렵다.

    반응형

    '기록 > TIL' 카테고리의 다른 글

    [TIL] 231025 - 데브코스 10일차  (0) 2023.10.25
    [TIL] 231024 - 데브코스 9일차  (0) 2023.10.24
    [TIL] 231023 - 데브코스 8일차  (1) 2023.10.23
    [TIL] 231020 - 데브코스 5일차  (1) 2023.10.20
    [TIL] 231018 - 데브코스 3일차  (1) 2023.10.18