programing
-
[Programmers] 폰켓몬programing/Algorithm 2021. 3. 7. 17:00
폰켓몬 찾아라 프로그래밍 마에스터 level 1 python 3 def solution(nums): picked = [] maxNums = len(nums) / 2; for num in nums: if len(picked) < maxNums and num not in picked: picked.append(num) return len(picked) 얼핏보면 조합문제 같아 보이지만, 사실 조합을 쓰지 않고도 충분히 풀 수 있는 문제. 복잡도 조건이 빡빡하진 않아서 최적화는 고려안해도 괜찮다. def solution(ls): return min(len(ls)/2, len(set(ls))) 선택 가능한 폰켓몬 수가 최대 n/2이기 때문에, 위와 같은 숏코딩도 가능하다.
-
[CSS] column-count를 이용하여 masonry layout 구현하기programing/Web 2021. 2. 28. 15:57
Masonry Layout masonry는 석조라는 단어라고 합니다. 즉 벽돌을 적조하는 것에서 착안한 레이아웃이라고 합니다. 대표적으로는 핀터레스트가 있죠. 보통 이미지를 나열해서 보여줄 때 유용한 레이아웃이며, 특징은 각 이미지의 너비가 동일하다는 것입니다. column-count 위와 같은 레이아웃은 column-count 속성으로 간편하게 구현할 수 있습니다. ... .masonry-container { column-count: 4; column-gap: 1em; } .masonry-item { display: inline-flex; width: 100%; margin-bottom: 1rem; border-radius: 10px; overflow: hidden; &:hover: { transfor..
-
[Programmers] 키패드 누르기programing/Algorithm 2021. 2. 14. 18:17
키패드 누르기 2020 카카오 인턴십 level 1 phython3 def sub_tuple(t1, t2): return (t1[0] - t2[0], t1[1] - t2[1]) def abs_tuple(t): return (abs(t[0]), abs(t[1])) def get_proper_hand(hand, left, right, left_location, right_location, target_location): left_distance = sum(abs_tuple(sub_tuple(left_location, target_location))) right_distance = sum(abs_tuple(sub_tuple(right_location, target_location))) if left_dista..
-
[Programmers] 제일 작은 수 제거하기programing/Algorithm 2021. 2. 14. 16:48
제일 작은 수 제거하기 연습문제 level 1 python3 import sys def solution(arr): _min = sys.maxsize index = None for (i, e) in enumerate(arr): if e < _min: _min = e index = i del arr[index] if len(arr) == 0: arr.append(-1) return arr 뭔가 자바스러운 풀이.. def solution(mylist): mylist.remove(min(mylist)) return mylist min 함수와 remove 함수를 사용할 수도 있다. 물론 조건에 중복된 수는 없다고 했기 때문에 가능한 것. (다만, 문제가 변경되어 -1 처리를 해주는 코드가 빠져있긴 하다)
-
[Programmers] 정수 제곱근 판별programing/Algorithm 2021. 2. 13. 21:15
정수 제곱근 판별 연습 문제 level 1 python3 import math def solution(n): root = math.sqrt(n) return math.pow(root + 1, 2) if root.is_integer() else -1 math.sqrt()의 반환값은 항상 float형이기 때문에, isinstance() 로는 제대로 확인을 할 수 없다. 왜냐하면 isinstance() 함수는 해당 변수가 어떤 자료형인지 판단하기 때문이다. 따라서 is_integer()를 사용해서 값을 기준으로 판단해야 한다.
-
[Shell Script] 정규표현식을 이용해 파일명 변경(치환)하기programing/Language 2021. 2. 13. 18:35
[KOR] 혹은 [kor]라는 접두사가 붙은 파일이 많이 있었습니다. 그런데 KOR 는 국가 코드이며, 언어 코드가 아니었습니다. 그래서 이러한 접두사들을 모두 [ko]로 바꿔야 했습니다. 하나하나 다 바꾸긴 귀찮아서, bash shell script로 구현해봤습니다. #!/usr/bin/env bash REGEX="^\[(k|K)(o|O)(r|R)\]" for file in * do if [[ ${file} =~ ${REGEX} ]] then result=$(sed -E "s/^\[kor\]/[ko]/gI"
-
부스트 캠프 멤버십 특강 - 코드리뷰programing/etc 2021. 2. 13. 01:17
코드리뷰는 협업이다 강대명님의 발표자료를 제가 정리했던 것을 블로그에 남겨봅니다. 코드리뷰에 임하는 자세 코드리뷰에서 기대하는 것은? 놓친 실수 더 좋은 방식(좀 더 언어스러운 코드) 성능 향상 코드리뷰에서 기분이 나쁜 경우 자괴감이 들어서 인신공격인지 코드리뷰인지.. 합의 코드 스타일은 합의된 lint를 이용해 통일 기능 추가는 테스트케이스를 작성해야 한다 하나의 pr에 언제까지 코드리뷰를 받아야 하나? approve 될 때 까지. 그럼 상대방과 나의 생각이 다르다면? 토론을 통해 협의를 한다. 리뷰어 코드 품질을 높이기 위해 노력한다 동료의 코드를 이해하기 위해 노력한다 단순한 스타일 지적은 지양한다 (린트를 쓰자) 리뷰이가 투자한 시간 만큼 리뷰어도 시간을 투자하자 리뷰이 필요한 배경지식을 추가하면..