일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- D3
- 대학원일기
- LEVEL2
- level1
- level4
- git
- java
- SWEA
- Python
- 컴퓨터비전
- 휴학
- Github
- 어렵다
- WebOS
- 내휴학생활중의아주큰일
- 대학원
- 안드로이드스튜디오
- MSBuild
- 자바
- androidstudio
- 파이썬
- build
- BFS
- 다시풀기
- SQL
- Matrix Factorization
- 컨트리뷰톤
- py
- level3
- 프로그래머스
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 프로그래머스 42862 본문
누가 이걸 레벨1이라고 해놨냐..
쉬고 싶어서 이거 했다가 진 다 빠짐,,
이런 경우의 수 생각하는 부분에 좀 약한 것 같다.
https://programmers.co.kr/learn/courses/30/lessons/42862
일단 내 코드
def solution(n, lost, reserve):
answer = set([])
sum = 0
tmp = []
for i in range(1, n+1):
if i in lost:
if i in reserve:
tmp.append(i) # 일단 넣어두기
else:
if i in reserve:
answer.add(i + 1)
answer.add(i - 1)
else:
answer.add(i)
for i in tmp:
if i not in answer:
answer.add(i)
continue
if i-1 not in answer:
answer.add(i-1)
continue
if i+1 not in answer:
answer.add(i+1)
continue
answer.remove(0)
answer.remove(n+1)
return len(answer)
여벌을 가진 사람이 도둑질 당할 수도 있다는 부분에서 어려웠다.
도둑질 당한 사람은 빌려주고 다른거 빌려 입는다 / 자기가 입는다 / 빌려주고 안입는다 중 뭐가 이득일까를 생각하는게 힘들었다.
set을 써서 중복이 되지 않도록 리스트로 관리하고 0이나 범위 초과된거를 제해주면 되겠다고 생각했는데 안됐음
이렇게 할 경우, 1번 테스트 케이스에서
lost = {2,4}
reserve = {1,3,5}에서 1번이 2번에게 빌려주고, 3번이 2,4에게 빌려주는데, 이때 빌려주는 수가 줄어들어버림.
이거 때문에 set쓰지 말고 개수를 세는 쪽으로 할까 싶었다가, set을 쓰지 않을때 발생할 일들이 머릿속에서 너무 복잡해서 + 시간을 이미 너무 많이 써서 그냥 답 검색했다.
검색)
def solution(n, lost, reserve):
reserve_set = set(reserve) - set(lost)
lost_set = set(lost) - set(reserve)
for i in reserve_set: # 순수하게 여벌을 가짐
if i - 1 in lost_set: # 2명 빌려주기
lost_set.remove(i - 1)
elif i + 1 in lost_set:
lost_set.remove(i + 1)
return n - len(lost_set)
정말 간단하게, 여벌을 가진 애 중 도둑질 안당한 애가 빌려주는 경우만 생각한 코드..
걔는 그냥 자기꺼 입는다고 취급하나보다. 그래 넌 너꺼 입어야지.
이런 생각은 어떻게 하는거지..
반응형
'Algorithm > Prob' 카테고리의 다른 글
SQL) 프로그래머스 59034 (0) | 2022.01.13 |
---|---|
Py) 프로그래머스 42747 (0) | 2022.01.13 |
Py) 프로그래머스 42627 (0) | 2022.01.12 |
Py ) 프로그래머스 60057 + 1/16다시풀기 (0) | 2022.01.10 |
Py) 프로그래머스 42584 (0) | 2022.01.07 |
Comments