제목은 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 |