2024. 5. 22. 19:32ㆍ코드리뷰
공부하는허딩크 : https://www.youtube.com/live/Io7CilXhjrk?feature=shared
LV0의 마지막 문제였다.
문제를 바라볼때 개인적으로 수학적 지식이 부족하다고 느꼈다.
1, 2, 3이 나올때 선분의 길이 2이면 숫자를 3개를 보는게 아니라 2개를 봐야 하는 점을 아예 깨닫지 못하고 있었다.
<첫번째 시도 : 틀렸습니다.>
<두번째 시도 : 틀렸습니다.>
<세번째 시도 : 틀렸습니다.>
방향을 다르게 해서 생각을 했다. 교집합과 합집합을 이용한다는 점에서 방향을 올바르게 가져갈 수 있었으나
마지막이 부족했다.
<네번째 시도 : 맞았습니다. : 다른 사람 풀이 참고함>
세번째 정답에서 교집합들의 합집합의 방향을 참고하고, 끝점을 제외하는 코드를 작성했다.
<코드 정리>
1. range(A, B)를 객체로 주고 list()또는 set()으로 반환하면 리스트 또는 튜플로 만들어진다.
2. [range(A, B)] 와 list(range(A, B))는 다른 결과를 만들어 낸다.
[]는 리스트 리터럴로, 리스트를 직접 정의할 때 사용된다. []안에 직접 값을 넣어 리스트를 만들 수 있다.
list()는 리스트 생성자다. 이 생성자는 다른 이터러블(예, 튜플, 문자열, range 객체 등)을 인자로 받아 이를 리스트로 변환한다.
즉, []는 직접 값을 넣는건데, list()는 대상을 받아서 이걸 리스트로 변환하는거네.....
3. 단, set(list(), list()) 이런 구조는 안된다. => set(list())의 구조는 가능함.
ㄴ 가능 temp = [set(range(min(i), max(i))) for i in lines]
ㄴ 가능 temp = list(set(range(min(i), max(i))) for i in lines)
ㄴ 불가능 temp = set(list(range(line[0], line[1])) for line in lines) ==> set()안에 list(), list() 이렇게 2번 들어감.
'코드리뷰' 카테고리의 다른 글
★[python_파이썬_2018 KAKAO BLIND RECRUITMENT]프로그래머스_LV1_[1차] 다트 게임_풀이 (0) | 2024.05.25 |
---|---|
[python_파이썬_pass]프로그래머스_LV1_가장 가까운 같은 글자_풀이 (0) | 2024.05.23 |
★[python_파이썬_복습 또 복습]백준_13909번_창문 닫기_풀이 (0) | 2024.05.21 |
★[python_파이썬_소수의 시간고려]백준_17103번_골드바흐 파티션_풀이 (0) | 2024.05.21 |
[python_파이썬_pass]백준_4948번_베르트랑 공준_풀이 (0) | 2024.05.20 |