본문 바로가기

스파르타코딩개발일지

TIL Docker&Linux 3일차

제목은 Docker&Linux 이지만 Docker&Linux 는 없고 프로젝트 와 알고리즘문제만 풀었다.

linux가 싫어서 도피한게아니라 프로젝트 금방끝내고 수업을 들으려했는데 생각보다 길어져서 하루 프로젝트와 알고리즘의 문제푸는데에 썻다.

우선 알고리즘은 저번주에 못풀었던 비밀지도와 greedy(탐욕법)을 이용한 체육복의 문제다

비밀지도

 

첫 번쨰 핵심 포인트다 

10진수로 입력받은것을 2진수로 바꾸는 함수 (bin)

zfill은 비어있는 공간에 0을넣어준다 최대 n개만큼

ex)4를 진수로 변환

bin만 쓰게되면 0b100

[2:] 슬라이싱하게되면 100

zfill도 같이쓰게되면 00100을 출력하게된다.

 

문제를 풀면서 10진수를 2진수로 변환하는 bin()함수는 알았지만 슬라이스라던지 .zfill은 응용못해서 아쉽다.

두번째 핵심 포인트다

두 지도를 비교했을떄 둘중하나라도 막혀있으면 #을 출력하고 공백으로 나오는 경우는 둘다 0일 경우만있기때문에

 0 0 을제외한 나머지에서 #을 추가해주는 모습이다.

다음은

def solution(n, lost, reserve):
    reserve_del = set(reserve) - set(lost)
    lost_del = set(lost)- set(reserve)
    for i in reserve_del:
        if i-1 in lost_del:
            lost_del.remove(i-1)
        elif i+1 in lost_del:
            lost_del.remove(i+1)
    return n - len(lost_del)
 
 
 
탐욕법을 이용하는 체육복 문제이다.
 

여기서 서로 중복제거한 리스트들끼리 -를 하게되는데 좌측값이 그대로 변수에 담기는지모르겠다.

이부분도 lost_del에서 1을뺸 요소들을 먼저 reverse에서 제거하고 그후에 음..

왜 lost.del _remove를했는데 

'스파르타코딩개발일지' 카테고리의 다른 글

TIL Docke&Linux 5일차  (0) 2022.11.15
TIL docker&linux 4일차  (0) 2022.11.14
TIL Docker&Linux 2일차  (0) 2022.11.11
TIL Docker&Linux 1일차  (0) 2022.11.09
TIL 팀 프로젝트 6일차(마무리)  (0) 2022.11.08