728x90
[나의 코드]
def solution(lines):
answer = 0
box = [line for line in lines]
b_box = []
for b in box :
for i in range(b[0]+1, b[1]+1):
b_box.append('{0} {1}'.format(i-1,i))
bb_box = list(set(b_box))
for bb in bb_box:
if b_box.count(bb)>1:
answer += 1
return answer
[다른 사람 코드]
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])
.... 이 코드 보고 현타 왔다..... ㅜㅡㅜ
일단 위 코드를 풀어보면
각 리스트 요소의 범위를 다 구해서 겹치는 값들의 길이로 구하는 방식이라는데..
음.. 잘 와닿지는 않는다.
[다른 사람 풀이2]
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))
& : 교집합
| : 합집합
728x90
'STUDY > Python' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2023.06.07 |
---|---|
@staticmethod 란? (0) | 2023.04.19 |
[프로그래머스] 음양 더하기 파이썬 (0) | 2023.04.06 |
[프로그래머스] K의 개수 파이썬 (0) | 2023.04.06 |
[프로그래머스] 2차원으로 만들기 파이썬 (0) | 2023.04.06 |