길이가 1인 단위 선분의 모임으로 생각하려 했으나 선분의 길이가 매우 길어지면 불가능함
1. -100 부터 100까지 나타낼 수 있는 길이가 200이고 원소는 0인 배열 lst를 만든다
2. 음수 좌표를 대비해서 모든 lines 요소에 100을 더한다
3. lines에서 지나간 좌표면 lst의 해당 인덱스 값을 1 증가시킨다
4. lst값이 2 이상인 것들의 길이를 구한다(겹치는 선분에 대해서 중복을 허용하지 않기때문)
def solution(lines):
# -100부터 100까지 나타낼수 있는 길이 200짜리 배열 선언
lst=[0]*200
#음수일 경우를 대비해서 +100
plus_line=[[x+100 for x in row] for row in lines]
#lines에서 지나간 좌표면 lst의 해당 인덱스값 증가
for i in range(0,3):
for j in range(0,2):
dot = plus_line[i][j]
lst[dot]+=1
#lst값이 2 이상인 것들의 길이
answer=0
for i in range(0,200):
if(lst[i]>=2):
answer+=1
return answer
-> 코드가 양 끝점만 찍고 있어서 구간 전체를 지나는 점을 찍어야 한다
def solution(lines):
#200개의 빈 배열 생성
lst = [0]*200
#주어진 좌표에 100을 더해서 음수 좌표가 없게 만들기
plus_lines = [[x+100 for x in row] for row in lines]
#plus_lines에 들어간 값에 해당하는 index값을 lst의 index값으로 두고 1 증가
for row in plus_lines:
for j in range(row[0],row[1]): #좌표의 시작점부터 끝점까지
lst[j]+=1
answer = 0
for i in range(0,200):
if lst[i]>=2:
answer+=1
return answer