본문 바로가기
반응형

Software Engineering11

리트코드 LeetCode 프리미엄 구독 해지한 이유 딱 1년에 한번 Black Friday에, Leetcode도 할인을 한다.원래 연에 $159, 약 20만원인데 할인해서 $100 내외에 Premium을 구독할 수 있다.아무튼 할인 행사를 해서 LeetCode 프리미엄 1년 구독을 했었다. 그 동안은 덕분에 잘 공부하긴 했는데, 올해는 구독을 갱신하지 않을 예정이다. 첫번째로 일이 바빠져서 퇴근하고 집에와서 밤에도 종종 일을 확인하다 보니 릿코드를 할 시간이 없다.두번째로 특별히 "특정" 회사 테스트를 준비하는 것이 아니라면, 평소 공부할 때 20만원씩 내면서 할 효용은 느끼지 못했다. (즉, 미국 테크기업 중 특정 회사를 목표로 테스트를 준비한다면 그 가치가 있다. 해당 회사에서 나왔던 기출들을 볼 수 있고, 대체로 경향과 난이도를 알 수 있기 때문에).. 2023. 12. 2.
코딩테스트에 유용한 Python 코드조각들 List flatten a nested list https://stackoverflow.com/a/952952/7883783 # to flat the nested list flat_list = [item for sublist in l for item in sublist] # shorter, but not efficient, not readable flat = sum(nums, []) creating a dictionary of Lists from collections import defaultdict lst = [('Geeks', 1), ('For', 2), ('Geeks', 3)] orDict = defaultdict(list) # iterating over list of tuples for key, .. 2023. 1. 2.
[알고리즘] LCA(Lowest Common Ancestor) 최소공통조상 Binary Tree에서 최소공통조상 LCA를 찾는 로직. 직접 Tree와 스택을 종이에 써보면서 따라가보면 이해가 쉽다. Leetcode 236. Lowest Common Ancestor of a Binary Tree Input/Output Input: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 Output: 3 Explanation: The LCA of nodes 5 and 1 is 3. Solution # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class S.. 2022. 12. 2.
[알고리즘] 이진 검색 binary search 코딩테스트 때 툭 치면 툭 나와야할 알고리즘 코드 스니펫 모음 Binary Search 재귀적 구현 int binarySearch(int[] array, int target) throws BSException{ return binarySearch(array, target, 0, array.lengh-1); } int binarySearch(int[] array, int target, int lower, int upper) throws BSException{ int center int range; range = upper - lower; if(range array[upper]).. 2022. 11. 27.
[알고리즘] 이진검색트리 BST(binary search tree) 코딩테스트 때 툭 치면 툭 나와야 할 코드 스니펫 모음. 이진 검색 트리 반복문 Node findNode(Node root, int value){ while(root != null){ int currval = root.getValue(); if(currval == value){ break; } if(currval value root = root.getLeft(); } } return root; } 재귀 tree 문제는 일단 반복문보다 재귀부터 고려해볼 것. Node findNode(Node root, int value){ if(root == null){ return null; } int currval = .. 2022. 11. 25.
[알고리즘] 이진트리 binary tree DFS, BFS 코딩테스트 전, 툭 치면 툭 나와야할만한 코드 스니펫들 모음. 이진트리 클래스 public class Node { private Node left; private Node right; private int value; public Node(Node left, Node right, int value){ this.left = left; this.right = right; this.value = value; } public Node getLeft(){ return left; } public Node getRight(){ return right; } public Node getValue(){ return value; } } 이진트리 DFS - preorder traversal(종주) (inorder, posto.. 2022. 11. 22.
실리콘밸리 개발자 연봉을 알아보자 (페이스북,아마존,구글,마이크로소프트,구글코리아) 미국 실리콘밸리엔지니어들의 연봉을 한번 알아보자다들 엄청 궁금해하고, 나도 궁금하니 공개된 정보를 통해 FANG 에 속하는 주요 회사들의 보상 수준을 한번 알아보자. 먼저 잡설을 좀 풀을거니까 연봉 궁금하신 분들은 바로 스크롤바 아래로 쭉 내리시길.. 연공서열우리나라 전통 대기업, 공공기관들은 대부분 연공서열에 따라 연봉이 오른다. 같은 직급의 동료끼리 연봉 차이가 거의 없이 대부분 뻔하다. 너도 대리 나도 대리 그럼 우리 연봉 얼마, 저 과장님은 얼마. 딱 나온다. 성과에 따라 조금 차이가 있는 정도. 반면 우리나라나 해외나 테크 회사들은 대부분 본인이 능력껏 협상하고 입사하는 경우가 많고, 성과에 따라서 파격적인 대우를 해주는 경우도 많기 때문에 같은 5년차라도, 10년차라도 연봉 차이가 아주 클 수.. 2022. 8. 27.
[파이썬] 안티패턴/팁 모음 파이썬 안티패턴과 팁들 몇가지. 그때그때 추가해나갈 예정. import module로부터 class 또는 function을 import할 때 *를 쓰는 경우, 메모리를 낭비하게 됩니다. 예시) from {module} import * 따라서 아래와 같이 필요한 object만 지정하여 가져오는 것이 좋습니다. from {module} import {class} init.py 패키지 경로에 패키지를 인식하기 위한 __init__.py는 생성하기를 권장합니다. Python 2.x에서는 __init__.py가 있어야 패키지 경로로 인식이 가능합니다. Python 3.x에서는 꼭 필요하지 않지만 하위호환을 위해 만들기를 추천합니다. Dictionary 참조 dic = {'x':'100', 'y':200'} key.. 2022. 4. 5.
반응형