일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- John Sonmez
- 가이드
- ZIP
- 2020 채용
- 힙
- 코딩테스트
- 조합
- 매직 넘버
- boolean
- enumerate
- 커리어
- 함수
- 파이썬
- 부등호
- min heap
- 중첩문
- 대소 비교
- 가독성
- permutations
- 임시 변수
- 함수화
- 중첩
- 탈출 조건
- 그리디
- max-heap
- deque
- 프로그래머스
- 중간 변수
- 변수명
- 스택/큐
- Today
- Total
목록전체 글 (34)
Better Code, Better Life

5부 경력 발전시키기 48장 좋은 평판 쌓기 프로그래밍 능력 × 평판 = 돈 이 공식때문에 평판 관리 또한 중요하다. 프로그래머에게 평판은 대출 심사때 신용과 같다고 생각한다. 프로그래머의 평판이 있어야 일을 믿고 맡길 수 있다. 이 평판은 개인 브랜딩을 통해 쌓을 수 있다. 브랜드는 메세지, 시각성, 일관성 요소를 가지고 있다. 이를 참고해서 블로그를 만들거나 개인 PR을 하면 된다. 나는 고급 프로그래머로 나를 브랜딩하고 싶다. 읽기 좋은 깔끔한 코드 작성법을 사람들에게 알려주고 싶다. 49장 인맥과 커뮤니티 사람들과 커뮤니케이션을 유지하고 싶다면, 그 사람들에게 먼저 가치를 제공해 주면 된다. 자신의 특기를 보여주고 그들에게 힘이 되어 주자. 나 같은 경우는 파이썬을 배우려는 사람들에게 파이썬 강의..

초보부터 고수까지 코드 품질에 관심있고 고급진 프로그래머가 되고 싶다면 블로그에 놀러오세요! 한번 쓴 코드는 5번 이상 읽힌다고 합니다. 프로젝트 규모가 커질 수 록 코드를 쓰는 것보다 읽어야 하는 비중이 늘어납니다. 따라서 사람을 위한 코딩이 중요합니다. 가독성 좋은 코딩을 통해 유지 보수도 쉬워지고 개발 속도도 빨라집니다. 이 블로그는 코드 품질에 대해 고민하고 실습하는 글을 포스팅합니다. 프로그래밍을 직접적으로 하는 구현 단계에 대한 내용을 다룹니다. 1. 관련 책을 리뷰 및 소감평을 쓰고 있습니다. 2. 코딩 테스트 문제풀이를 통해 클린 코드 작성법을 알려드립니다. 초보분들은 코드 품질에 대한 관심을 통해 초창기 습관을 올바르게 기를 수 있습니다. 중수분들은 저와 같이 코드 품질에 대해 지속적으로..

문제 풀이 Counter을 통해 카테코리마다 몇개가 있는지 세어주고 카테고리 선택지 마다 안 입는 경우(1을 더해줌)를 포함해서 가능한 조합을 계산해주면 됩니다. 전부 안 입는 경우는 제외합니다. 직접 Counter에 해당하는 로직을 구현할 수 있지만, collections 에 있는 함수들은 애용해주는게 좋습니다! 클린 코드 작성법 함수 같은 경우 동사형 get_something 으로 이름 붙여주면 가독성이 올라갑니다. for 문 내에 i 같은 임시 변수 대신 cloth 같이 구체적으로 반복시킬 대상을 이름 붙여주면 좋습니다. 주석을 통해 더 설명력 있는 문장을 전달할 수 있습니다. 코드만으로는 더 높은 추상화가 힘들 때 주석을 덧 붙여주면 좋습니다. choices -= 1 여기서 1은 전부 안 입는 경..

4부 개발자로 일하기 36장 동료 대하기 최대한 동료를 도와주자. 서로 윈윈 할 수 있는 관계면 제일 좋다. 일하지 않는 동료가 있더라도 본인이 할 일에 집중하자. 저자는 카네기의 인간관계론을 추천한다. 37장 상사 대하기 상사 또한 사람이다. 상사를 이해하고 친하게 지내자. 상사가 본인 일에 대해 더 모를 수 있다. 그럴 때 비효율적인 방법으로 진행하길 내버려 두는 것보다 상사에게 의견 피력을 해보자. 이외에 상사의 유형에 대해 설명하고 있다. 38장 QA 대하기 QA(Quality Assurance) 품질 보증 팀이다. End-user(고객)에게 서비스를 제공하기 전 거쳐야 할 최종 관문이기 때문에 까다롭게 굴 수 밖에 없다. QA에게 코드 제출 전, 자신의 코드는 자신이 책임진다는 마음으로 코딩하자..

3부 소프트웨어 개발에 대해 알아야 할 것 - 2 29장 테스트 주도 개발과 단위 테스트 TDD는 일단 테스트 코드를 작성한다는 점에서 일반 개발 방법과 다르다. TDD로 개발을 하게 되면 최소한으로 통과해야 하는 코드가 있기 때문에 안정적이다. 개발한 함수의 효율을 높이기 위해 코드를 수정하는 경우, 바뀐 코드가 똑같은 기능을 하는지 확인하는 테스트 코드가 생기기 때문이다. 또한 필요한 최소한의 코드만을 작성하기 때문에 코드 커버리지가 늘어난다. 코드 커버리지가 늘어나면 유지보수가 쉬워진다. TDD로 개발하게 되면 자신의 코드에 더 책임감 있어져 애자일 개발방법론과 어울러진다. 테스트는 단위테스트와 통합테스트로 나눌 수 있다. 단위테스트는 한 줄 단위로 최소한의 기능이 원하는 대로 결과를 내는지 테스트..

문제 풀이 combinations을 써서 푸는 문제입니다. 두개씩 묶은 번호 중에 전화번호가 긴 것이 짧은 것을 포함하는 경우 False, 아니면 True입니다. has_duplication 와 같은 함수를 만드는 연습과 combinations를 연습해보는 문제 같습니다. 함수를 작성할 때, return을 끝에 하나만 작성하면 디버깅 및 유지 보수가 쉬워집니다. 이 글의 반환값 문단을 참고하면 좋습니다. 해답 코드 from itertools import combinations def has_duplication(a, b): duplication = False if len(a) >= len(b): if a[:len(b)] == b: duplication = True else: if b[:len(a)] ==..

문제 풀이 제한사항 중에서 1. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. 2. completion의 길이는 participant의 길이보다 1 작습니다. 3. 참가자 중에는 동명이인이 있을 수 있습니다. 이 중요합니다. Hash 자료 구조를 이용해 마라톤 선수들 숫자를 셉니다. 선수들의 숫자를 셀 때, 리스트 자료구조를 이용할 경우, 10만명이나 되기 때문에 접근 비용이 매우 큽니다. 그래서 Hash 자료 구조를 이용해야 풀리는 문제입니다. 숫자를 센 이후, 둘을 비교해 차이가 1인 선수를 찾습니다. 파이썬에서 Hash 자료 구조는 내부 자료형인 dict를 이용하면 됩니다. Collections에 있는 Counter는 더 편리하게 리스트내 자료들을 셀 수 있습니다. 아래 ..

3부 소프트웨어 개발에 대해 알아야 할 것 - 1 21장 프로그래밍 언어 개요 언어마다 특징이 있다. 대학에서는 C, 자바, 파이썬 순으로 많이 쓰이는 것 같다. 전공자가 하나만 배운다면 보통 C를 배우고 그 다음으로 자바를 배우는 것 같다. 비전공자는 파이썬을 배우는 추세다. C는 포인터를 다룰 수 있어 직접 메모리에 접근이 가능하다. 코드 길이가 길지만 속도가 빠르다. 메모리 관리도 용이해서 임베디드, IoT를 포함한 저사양PC에 많이 쓰인다. 자바는 대규모 프로젝트에 필수적인 객체지향언어 개념을 배우기 좋다. 클래스를 기본으로 프로그래밍한다. 객체라는 말이 정말 추상적인데 영어로는 object다. 실제 사물을 코드로 표현하고 사물간 기능, 관계를 엮어 프로그래밍하는 것이 객체지향 프로그래밍이다. 만..