[Clean Code][TIL] 객체와 자료구조
이 포스트는 로버트 C.마틴의 Clean Code 속 6장(118p ~ 128p) 내용에 대한 정리입니다. “새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료구조와 절차적인 코드가 더 적합하다.” (6장 128p) 자료의 추상화 자료를 표현할 때, 자료 구조를 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 6장(118p ~ 128p) 내용에 대한 정리입니다. “새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료구조와 절차적인 코드가 더 적합하다.” (6장 128p) 자료의 추상화 자료를 표현할 때, 자료 구조를 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 5장(96p ~ 116p) 내용에 대한 후기입니다. “좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다.” (5장 114p) 형식을 맞추는 목적 코드를 작성하면서 돌아가는 코드 뿐만 아니라 코드 작성 형식까지 고려해야할까요? 형식의 필요성을 확인하기 위해 내용이 같지만 형식이 다른 ...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 가장 빨리 도달하는 방법 최단 경로 알고리즘은 이름 그대로 목적지까지 가장 짧은 경로를 찾는 알고리즘입니다. 최단 경로 유형의 문제로는 “한 지점에서 특정 지점까지의 최단 경로를 구해야 하는 경우”, “모든 지점에서 다른 모든 지점까지의 모두 최단...
프로그래머스의 무지의 먹방 라이브 문제 풀이에 대한 포스트입니다. 문제 설명 첫 번째 풀이 (오답) 문제에서 food_times 가 { 4, 2, 3, 6, 7, 1, 5, 8 }, k 가 27 로 주어졌을 때, food_times 에 저장된 시간을 기둥으로 그려 표시하면 아래 그림과 같이 그릴 수 있습니다. 아래 괄호는 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 4장(68p ~ 94p) 내용에 대한 후기입니다. “나쁜 코드에 주석을 달지 마라. 새로 짜라.” (4장 68p) 주석 말고 코드로 의도를 표현할 것 위키백과에서는 주석을 다음과 같이 설명하였습니다. “소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 3장(40p ~ 65p) 내용에 대한 후기입니다. 작은 함수에게 한 가지만 시키기 “함수는 한 가지를 해야한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.” (3장 44p) 코드를 작성하면서 여러 함수가 추가되고 기능이 추가되면서 한 개의 함수가 비대해지는 경험은 프로...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 순차 탐색 여러 탐색 알고리즘 중 가장 가장 기본적인 탐색이 순차 탐색입니다. 순차 탐색은 이름처럼 특정한 데이터를 찾기 위해 앞에서부터 하나씩 차례대로 확인하는 알고리즘 입니다. 보통 정렬되지 않은 배열에서 탐색하기 위해 사용하며 데이터의 개수가...
이 포스트는 로버트 C.마틴의 Clean Code 속 2장(22p ~ 38p) 내용에 대한 후기입니다. “여느 코드 개선 노력과 마찬가지로 이름 역시 나름대로 바꿨다가는 누군가의 질책을 받을지 모른다. 그렇다고 코드를 개선하려는 노력을 중단해서는 안 된다.” (2장 38p) 이름을 잘 짓는 규칙 로버트는 이름을 잘 짓는 규칙으로 15개의...
이 포스트는 로버트 C.마틴의 Clean Code 속 추천사부터 1장까지(1p ~ 20p) 내용에 대한 후기입니다. 기억하고 싶은 내용 모드럽의 추천사 중 다음과 같은 내용이 있습니다. “집 주인이라면 누구나 알겠지만, 지속적인 개선과 보살핌은 결코 끝나지 않는다.” (추천사 xxvi) 이 내용이 프로그램의 유지 보수 작업에 대한 프로그래...
크로아티아 알파벳 문제 크로아티아 알파벳 문제는 입력 받은 문자열에서 특정 문자열을 탐색하는 문제입니다. 처음 코드를 작성할 때, 아래 while()문 처럼 코드를 작성하였습니다. vector<string> croatia_alphabet{"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="}; stri...