본문 바로가기
반응형

프로그래밍54

[분할정복] LeetCode 14 - Longest Common Prefix class Solution: def merge(self, left, right): result = "" min_len = min(len(left), len(right)) for i in range(min_len): if left[i] == right[i]: result += left[i] else: return result return result def divideConquer(self, arr, low, high): if low >= high: return arr[low] m = (low + high) // 2 leftStr = self.divideConquer(arr, low, m) rightStr = self.divideConquer(arr, m + 1, high) return self.merge.. 2021. 3. 16.
[python] 배열 복사하기 arr = [ [1,1,1], [2,2,2] ] temp = arr[1] print(arr[1]) # [2,2,2] temp[0] = 3 print(arr[1]) # [3,2,2] arr 배열값을 temp 배열에 할당했다. 그러고 나서 temp 배열값을 변경하였다. 그러면 temp 배열만 바뀔 줄 알았는데 arr 배열값도 같이 바뀐다. c++ 에선 arr 배열값이 안바뀔텐데 말이다. arr 배열값을 그대로 유지하려면? arr = [ [1,1,1], [2,2,2] ] temp = [] for i in arr[1]: temp.append(i) print(arr[1]) # [2,2,2] temp[0] = 3 print(arr[1]) # [2,2,2] for 문을 사용하여 temp 배열에 arr 값을 하나씩 할.. 2021. 2. 23.
[python] for문에서 index 값 수정하기 for i in range(1,n+1): if arr[x[i]][y[i]] == 0 : arr[x[i]][y[i]] = i #해당 자리에 아무도 없는 경우 else: if age[arr[x[i]][y[i]]] < age[i] : age[arr[x[i]][y[i]]] = age[i] #나중에 들어온 사람 나이가 더 많은 경우 remove(i) i -= 1 #i번째 사람 다시 한 번 확인 i가 3일때 else문에 들어왔다고 해보자. 그러면 i -= 1을 통해 i값이 1 감소되어 2가 된다. 그러면 그 다음 반복문에서 i값이 1 증가하니 3이 될 줄 알았다. 그러나 python에서는 원래 반복문대로 i가 4가 된다. 즉 i -= 1 의 효과가 없는 것이다. c++에서는 우리가 생각하는대로 i가 3이 된다. i.. 2021. 2. 17.
[SQL] LEFT/RIGHT JOIN 이해하기 ANIMAL_OUTS 테이블엔 데이터가 있지만, AMNIMAL_INS 테이블엔 데이터가 없는 경우가 있다. 이 경우를 LEFT/RIGHT 조인을 사용하여 조회해본다. LEFT JOIN A left join B on (a.id = b.id) A(왼쪽) 테이블을 기준으로 B(오른쪽) 테이블을 조인 거는 경우다. A테이블 값은 전부 출력이 된다. A테이블 값과 매칭되지 않는 B테이블 값은 빈값으로 출력될 것이다. SELECT * FROM ANIMAL_OUTS outs LEFT JOIN ANIMAL_INS ins ON ins.ANIMAL_ID = outs.ANIMAL_ID ; (A) : 파랑색으로 표시한 부분은 ANIMAL_OUTS 테이블이다. (B) : 빨간색으로 표시한 부분은 ANIMAL_INS 테이블이다... 2021. 1. 21.
[펌] MySQL 쓰면서 하지 말하야 할 것 17가지 MySQL 쓰면서 하지 말아야 할 것 17가지 *MySQL 쓰면서 하지 말아야 할 것 17가지* 권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다. 다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것 blog.lael.be 2021. 1. 20.
[SQL] SELECT의 alias는 GROUP BY, HAVING, ORDER BY에서만 사용가능 쿼리실행순서 FROM -> WHERE -> GROUP BY -> (HAVING) -> SELECT -> ORDER BY GROUP BY가 SELECT 보다 먼저 실행 되지만, SELECT의 alias를 사용할 수 있다. (DBMS가 알아서 해줌. mysql 기준) GROUP BY, HAVING, ORDER BY에서 SELECT의 alias를 사용할 수 있다. WHERE절에서는 SELECT의 alias를 사용할 수 없다.실제 컬럼명만 사용가능하다. 간접적인 방법은 있다. (서브쿼리 등) stackoverflow.com/questions/942571/using-column-alias-in-where-clause-of-mysql-query-produces-an-error SELECT HOUR(DATETIME).. 2021. 1. 20.
반응형