Lv. 0, 55%
https://school.programmers.co.kr/learn/courses/30/lessons/120876
내가 제출한 코드:
def solution(lines):
answer = 0
line1 = set(range(lines[0][0], lines[0][1]))
line2 = set(range(lines[1][0], lines[1][1]))
line3 = set(range(lines[2][0], lines[2][1]))
answer = sorted(list(line1 & line2 | line1 & line3 | line2 & line3))
return len(answer)
교집합과 합집합을 사용!
처음 작성한 코드:
def solution(lines):
answer = 0
line1 = set(list(range(lines[0][0], lines[0][1]+1)))
line2 = set(list(range(lines[1][0], lines[1][1]+1)))
line3 = set(list(range(lines[2][0], lines[2][1]+1)))
if len(line1) == 1:
line1 = set()
if len(line2) == 1:
line2 = set()
if len(line3) == 1:
line3 = set()
answer = sorted(list(line1 & line2 | line1 & line3 | line2 & line3))
length = 0
for i in range(len(answer)-1):
if answer[i] == answer[i+1]-1:
length += 1
return length
range()가 문제였다
range()에서 +1을 지워주니 잡다한 친구들이 다 필요가 없어졌다! 후
set() 함수를 list로 해야하는 줄 알았는데 아니었다
비슷한 다른 분의 코드:
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) | 2023.05.07 |
---|---|
2021 KAKAO_신규 아이디 추천_정규표현식 (0) | 2023.05.03 |
코딩테스트 연습_2023 KAKAO 개인정보 수집 유효기간_zfill() (1) | 2023.04.28 |
코딩테스트 입문_find() ord() index() abs() (0) | 2023.04.09 |
코딩테스트 입문_점의 위치 구하기 (0) | 2023.04.07 |