아보카도 Blog
프로그래머스 스쿨 코딩테스트 입문: 평행 본문
네 개의 점이 주어졌을 때 두 점씩 이은 두 직선이 평행이 되는 경우가 있는지 알아보는 문제.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫번째 풀이방법으로는 기울기를 a로 두고 기울기가 같은 애가 있는지 알아봤다.
def solution(dots):
ang = []
for i in range(3):
for j in range (i+1, 4):
x= dots[i][0] - dots[j][0]
y= dots[i][1] - dots[j][1]
a = y/x if x!=0 else -1
if a not in ang:
ang.append(a)
else:
return 1
return 0
두번째 풀이방법으로는 combinations이라는 함수를 사용해서 for문의 범위에 combinations를 사용했다.
각각 두 점의 조합을 만들어서 a의 배열에 더해준 다음, 이 a 조합에서 기울기가 같은 애들이 있는지 확인한다.
from itertools import combinations
def solution(dots):
a = []
for (x1,y1),(x2,y2) in combinations(dots,2):
a.append((y2-y1,x2-x1))
print(a)
for (x1,y1),(x2,y2) in combinations(a,2):
if x1*y2 == x2*y1:
return 1
return 0
'자료구조, 알고리즘' 카테고리의 다른 글
프로그래머스스쿨: 행렬 덧셈, k번째 수 (0) | 2023.01.24 |
---|---|
프로그래머스 스쿨 코딩테스트 입문: [1차] 비밀지도 (0) | 2022.12.22 |
프로그래머스 스쿨 코딩테스트 입문: 직각삼각형 출력하기 (0) | 2022.12.22 |
프로그래머스 스쿨 코딩테스트 입문: 2차원으로 만들기 (0) | 2022.12.14 |
자료구조, 알고리즘 5주차 (0) | 2022.12.12 |