겹치는 선분의 길이 - Python
2023. 10. 1. 22:09ㆍ공부/📝 프로그래머스
def solution(lines):
temp = []
temp2 = []
for item in lines:
for i in range(item[0], item[1]):
if i + 0.5 in temp:
if i + 0.5 not in temp2:
temp2.append(i + 0.5)
else:
temp.append(i + 0.5)
return len(temp2)
# Test Cases
print(solution([[0, 1], [2, 5], [3, 9]]))
print("=" * 50)
print(solution([[-1, 1], [1, 3], [3, 9]]))
print("=" * 50)
print(solution([[0, 5], [3, 9], [1, 10]]))
print("=" * 50)
set() 없이 풀었습니다.
def solution(lines):
s1 = set(i for i in range(lines[0][0], lines[0][1]))
s2 = set(i for i in range(lines[1][0], lines[1][1]))
s3 = set(i for i in range(lines[2][0], lines[2][1]))
return len((s1 & s2) | (s2 & s3) | (s1 & s3))
저가 푼 건 아니고, set()을 이용한 풀이입니다.
def solution(lines):
sets = [set(range(min(l), max(l))) for l in lines]
return len(sets[0] & sets[1] | sets[0] & sets[2] | sets[1] & sets[2])
위의 풀이를 더 간략하게 만든 풀이를 발견했습니다. 잘하네요.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
평행 - Python (0) | 2023.10.02 |
---|---|
옹알이 (1) - Python (0) | 2023.10.02 |
안전지대 - Python (0) | 2023.10.01 |
연속된 수의 합 - Python (0) | 2023.10.01 |
다음에 올 숫자 - Python (0) | 2023.10.01 |