나 개발자 진짜 되냐?

코딩테스트 입문 - 평행 ( 기울기 구하는 법 ) 본문

프로그래머스를 풀어보아요!/C++

코딩테스트 입문 - 평행 ( 기울기 구하는 법 )

Snow Rabbit 2026. 5. 19. 22:58

 

오늘은 내 인생에

꼭 필요한 듯하지 않은.. 곳에 갔다.

평생 후회할지도 모른다.

그래도...

 

오늘 내 인생 기록되는 순간일지도 모른다.

 

영원히 닿을수 없는

기찻길 같은 문제를 풀어보자


 

두 점을 잇는건

01 - 23

02 - 13

03 - 12

이렇게 3가지 밖에 없다.

 

그럼.. 두 점 잇는 건.. 그렇다 치고..

도대체 기울기는 어떻게 구하는걸까???

 

기울기는

y좌표의 차이 / x좌표의 차이 가 된다.

이 기울기가 같으면 두 선은 평행해지는 것

 

0번과 1번점을 이어서 기울기를 구할 땐

 

dots [0][1] - dots [1][1]가 y좌표의 차이고

dots [0][0] - dots [1][0]가 x좌표의 차이가 된다.

 

y / x 해주면 그 줄의 기울기가 나오게 되는 것.

 

3가지 밖에 없는데 왜 이리 짜기가 어려운 건지..

 

if문으로만 해도 될 거 같다.

쓰면서 이게 맞나 싶었다.

 

 

인지 씨에게 물어보니

 

괜찮다고 한다.

 

그래서 그냥

하드코딩으로 풀어버렸다.

 

 

 

생각은 이렇게 했는데

정말 이렇게 풀어야 한다는 게..

신기하달까..

 

 

다른 사람 풀이 보니까

 

이렇게 새로운 2차원 배열을 만들고

 

for문으로

이 pairs를 돌면서 비교해 주니 변수를 그렇게 다양하게 안 만들어줘도 됐었다.

더 신기한 점은

 

기울기는 y 변화 / x 변화였다.

예를 들여

gi1 = 1/2

gi2 = 2/4

라고 쳐보자.

그러면 gi1 = gi2라고 했을 때

 

나누기 대신 상대의 분자분모를 곱하는 것도 값이 같다.

 

그래서

1 * 4 == 2 * 2

같으므로 기울기가 같다고 생각하게 된다.

 

이것도 그래서

gi1의 x변화와 gi2의 y의 변화를 곱해주고

gi2의 x변화와 gi1의 y변화를 곱해주고

그게 같으면 기울기도 같은 거니 return 1; 해주는 것이다.

 

나누기도 편한데....

곱하기도 알아두면 나쁠 거 없기에 정리해 봤다.

 

 

곱하기로 했으니 이건 int로도 충분했다...

double은 나눠지다가 숫자가 떨어져 나갈까 봐 한 건데 말이다.

 


 

 

하드코딩하는 게 어려웠고

( 사실 이게 왜 어려운지...ㅋ 싶지만 )

 

두 번째로는.. 기울기 구하는 게 어려웠다.

 기울기 = y의 차이 / x의 차이

 

였다.

기울기를 기억해야겠다.