Bonfire
99클럽 코테 스터디 23일차 TIL leetcode minimum-lines-to-represent-a-line-char 본문
알고리즘/99 코테 스터디
99클럽 코테 스터디 23일차 TIL leetcode minimum-lines-to-represent-a-line-char
pecan 2024. 6. 21. 05:21나의 접근사고
핵심 아이디어 : 한 점에서 다른 점으로 오름차순으로 이동하면서, 기울기가 바뀔때마다 선을 새로 그어야한다
나는 고등학교 때 공부했던 단위벡터를 구해서 하려다 소수점까지 나오면 복잡해지므로, 현재와 다음 점 사이의 벡터를 구한뒤 둘의 최대공약수로 나눠 소수로 이루어진 벡터를 구하고 비교했다.
나의 코드
class Solution:
def minimumLines(self, stockPrices: List[List[int]]) -> int:
stockPrices.sort(key=lambda x: x[0])
if len(stockPrices)==1:
return 0
answer=1
def gcd(a,b):
while b:
a,b=b,a%b
return a
def same_incl(a,b,c):
x1,y1=a
x2,y2=b
x3,y3=c
g1=gcd(x2-x1,y2-y1)
g2=gcd(x3-x2,y3-y2)
if (x2-x1)//g1==(x3-x2)//g2 and (y2-y1)//g1==(y3-y2)//g2:
return True
return False
for i in range(len(stockPrices)-2):
if not same_incl(stockPrices[i],stockPrices[i+1],stockPrices[i+2]):
answer+=1
return answer
블로깅에 대한 회고
최근에 다른 코테 스터디를 진행한 사람들의 블로그를 공유해줘서 탐방을 해보았는데, 다들 정성이 많이 들어간 글을 썼던 것 같다. 나도 글을 잘 쓰고 싶고, 깔끔하게 정리하고 싶은데, 생각보다 쉽지가 않다. 그래도 꾸준히 조금씩 내 스타일을 찾아 기록하는 습관을 들이고, 지금은 다른 더 중요한 공부 때문에 너무 바빠 자세히 쓸 시간이 없지만, 조금의 여유가 생기면, 지식을 쌓으면서 알아낸 부분을 공유하는 방향으로 써보려고 한다.
코드에 대한 회고
나는 효율성보다는 이해와 가독성(?)에 중점을 둔 코드를 짜는 것 같다.
코테는 효율성이 우선이라, 시간을 더들여서 코드를 간략하게 짜는 법을 익혀두는 것도 시간 절약에 도움이 될 것 같다.
'알고리즘 > 99 코테 스터디' 카테고리의 다른 글
99클럽 코테 스터디 25일차 TIL Leetcode Minimum Number of Coins for Fruits (0) | 2024.06.22 |
---|---|
99클럽 코테 스터디 24일차 TIL Leetcode Append K Integers With Minimal Sum (0) | 2024.06.21 |
99클럽 코테 스터디 22일차 TIL Leetcode Remove K Digits (0) | 2024.06.20 |
99클럽 코테 스터디 21일차 TIL LEETCODE Longest Palindromic Substring (0) | 2024.06.19 |
99클럽 코테 스터디 20일차 TIL Leetcode Next Greater Element III (0) | 2024.06.17 |