첫 번째 원소에 대해 오름차순 정렬 : 두 번째 원소는 내림차순으로 정렬 : 파이썬 정렬은 기본적으로 오름차순이므로, 두 번째 원소를 내림차순으로 하려면 음수(-) 를 붙인다.
한 줄 요약: “왼쪽 후보가 더 좋으면 True”를 반환하는 비교식입니다.튜플을 이용한 사전식(lexicographical) 비교를 하고 있어요.무슨 기준으로 더 좋은지?1순위: grid\[new_x]\[new_y] 값이 더 큰 쪽이 승리2순위(동점 시): x가 더 작
BackTracking을 할 때, 최대한 의미없는 동작의 반복을 줄여나가는 방향으로 최적화해야 한다.
결국 Backtracking에서 언젠간 벗어나야 한다.조만간 DFS로 갈아타자.
points = list(set(points))되게 간단.. 꼭 기억하자.
몇 회의 루프를 돌았는지, for 문 상에서 확인해야 되는 경우가 있다. enumerate는 이런 루프 횟수를 체크할 때 매우 유용한 파이썬 내장 함수이고, 매우 간결하기 때문에 진정 pythonic 한 함수이기도 하다.실제로 enumerate의 작동 방식은 아래와 같
m개중 n개 뽑기example codehand debugging순서0,1,2 -> 0,1,3 -> 0,1,4 -> 0,2,3 -> 0,2,4 -> 0,3,41,2,3 -> 1,2,4 -> 1,3,42,3,4총 10 ... 5C3 = 10
자꾸 여기서 걸린다.만약 \* n으로 나타낸다면 참조값이 같아져서 한 칸을 수정해도 해당 row가 다 수정되는 대참사가 발생할 수 있으니 최대한 for로 해결하자.
최단거리로 움직일 때, 경로가 존재하는가? 최단경로의 길이는 얼마인가? 최단경로는 그래서 뭔가?
유용하게 쓰일 것 같다.0번에 더미로 빈 리스트를 두고 싶으면 이렇게 넣으면 돼요.
먼저 수식으로 접근해보자.row, col이 0부터 시작한다고 가정하면인덱스 교환만 하면 끝ex) r1, c1 ~ r2, c2 범위를 회전한다고 하면
내 코드Code optimized by ChatGPT
확실히 argument들에 대해 '참조' 여부를 명확히 하는 문법이 뭔가 편한 느낌이다.substr로 새로운 배열을 계속 복사하기보다는 idx를 가지고 계산하면 훨씬 효율적이다.내 코드 vs 최적화 코드Memory : 15568KB vs 7796KBTime : 164m
Bellman-Ford 알고리즘 실제 적용 문제를 해결하기 위해 참조 코드들을 공부하던 중,&가 붙어있는 걸 뒤늦게 알아봤다. 굳이 이게 없어도 문제는 해결되긴 하는데 어떤 역할일까 궁금해서 찾아봤다.&가 없으면 매 반복문마다 새로운 객체를 생성한다. 이 문제 상황에서