일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 데이터사이언스
- string
- 코딩테스트
- Clean Code
- 티스토리챌린지
- 오블완
- 파이썬
- Coursera
- softeer
- 소프티어
- 깨끗한 코드
- AI Mathematics
- Python
- 자바
- 코테
- 코세라
- Data Science
- 알고리즘
- Java
- 문자열
- IBM
- 부스트캠프
- 데이터과학
- 클린코드 파이썬
- data science methodology
- 프로그래머스
- Boostcamp AI
- 클린코드
- 데이터 사이언스
- programmers
- Today
- Total
목록Python (16)
떼닝로그

" 복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다. " 도시를 세운다면? - 도시가 돌아가는 이유는 적절한 추상화와 모듈화 때문이다. 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 '구성요소'는 효율적으로 돌아간다. - 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. - 이 장에서는 높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 살펴본다. 시스템 제작과 시스템 사용을 분리하라 - 제작(construction)은 사용(use)과 아주 다르다. - 소프트웨어 시스템은 (애플리케이션 객체를 제작하고 의존성을 서로 '연결'하는) 준비 과정과 (준비 과정 이후에 이어지는) 런타임 로직을 분리해야 한다. - 시..
- 프로그래밍 초창기에는 시스템을 루틴과 하위 루틴으로 나눴으나, 지금은 함수만 살아남았다. - 가장 기본적인 단위가 함수. # 좋지 않은 코드 def testableHtml(pageData:PageData, includeSuiteSetup:bool) -> str: try: wikiPage = pageData.getWikiPage() buffer = StringBuffer() if pageData.hasAttribute("Test"): if includeSuiteSetup: suiteSetup = PageCrawlerImpl.getInheritedPage(SuiteResponder.SUITE_SETUP_NAME, wikiPage) if suiteSetup != NULL: pagePath = suiteSe..
의도를 분명히 밝혀라 - 좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 훨씬 더 많다. # 좋지 않은 예시 d = 0# 경과 시간(단위: 날짜) # 좋은 예시 elapsedTimeInDays = 0 daysSinceCreation = 0 daysSinceModification = 0 fileAgeInDays = 0 - 이름 d는 아무 의미도 드러나지 않는다. 측정하려는 값과 단위를 표현하는 이름이 필요하다. - 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다! def getThem() -> List(int): list1 = ArrayList() for x in theList: if x[0] == 4: list1.append(x) return list1 - 코드 맥락이 ..

2021 KAKAO BLIND RECRUITMENT Level 2 메뉴 리뉴얼 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 💡 아이디어 💡 문제를 어떤 방식으로 해결하려 했는지 그 과정을 적어주세요. 초기에 접근한 방법과 최종 접근이 차이가 없으면 한개만 적어도 됩니다. 초기 접근 이번에도 역시나~! 문제를 처음에 잘못 이해했었다. 큰 부분은 아니었지만... 그냥 두 번 이상 나혼 조합이면 다..

Level 2 124 나라의 숫자 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 💡 아이디어 💡 문제를 어떤 방식으로 해결하려 했는지 그 과정을 적어주세요. 초기에 접근한 방법과 최종 접근이 차이가 없으면 한개만 적어도 됩니다. 최종 접근 진법을 구하는 방식으로 했다. 나올 수 있는 숫자의 종류가 세 가지밖에 없으니 3진법으로! 아이디어만 있으면 금방 풀 수 있었던 문제같다. 다만,,, 진법 해결을 하는 데에 시간이 조금 오래 걸렸을 뿐,,,^^ 그리고 예시가 다양하지 않아서 예제는 금방 다 맞히는데 최종 제출을 하면 와르륵 틀려버리는 사태가 일어났던 것 같다. 아..

2019 KAKAO BLIND RECRUITMENT Level 2 오픈채팅방 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 💡 아이디어 💡 문제를 어떤 방식으로 해결하려 했는지 그 과정을 적어주세요. 초기에 접근한 방법과 최종 접근이 차이가 없으면 한개만 적어도 됩니다. 초기 접근 생각보다 오래걸렸다. 다 하고 나니 뭐 이런 걸로 시간을 오래 끈 거야 싶은... 그냥 무지성 코딩의 절정을 찍은..

2020 카카오 인턴십 Level 1 키패드 누르기 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 💡 아이디어 💡 문제를 어떤 방식으로 해결하려 했는지 그 과정을 적어주세요. 초기에 접근한 방법과 최종 접근이 차이가 없으면 한개만 적어도 됩니다. 초기 접근 모든 키패드를 하나의 2차원..

2020 KAKAO BLIND RECRUITMENT LEVEL 2 문자열 압축 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 💡 아이디어 💡 문제를 어떤 방식으로 해결하려 했는지 그 과정을 적어주세요. 초기에 접근한 방법과 최종 접근이 차이가 없으면 한개만 적어도 됩니다. 초기 접근 처음에는 단순하게 빈 문자열을 하나 생성해서 거기에 한 글자씩 더해가면서 매번 비교를 하려고 했다. 이렇..