
문제 프로그래머스 - 완주하지 못한 선수 코드 def solution(participant, completion): d = {} # 같은 이름이 존재하면 1을 더하고, 존재하지 않으면 0 저장 for x in participant: d[x] = d.get(x, 0) + 1 for x in completion: d[x] -= 1 dnf = [k for k, v in d.items() if v > 0] return dnf[0]
오늘 TIL 3줄 요약 안 되면 안 되는 이유를 설명하자. 잘못된 부분을 발견했다면, 미루지말고 빠른 시일에 고치자. 반복하지말자. 그게 잘못된 코드든.. 행동이든.. TIL (Today I Learned) 2022.03.19 오늘 읽은 범위 1장 실용주의 철학 책에서 기억하고 싶은 내용을 써보세요. 당신은 당신의 조직을 바꾸거나, 당신의 조직을 바꿀 수 있다. 기술에 뒤쳐지는 기분이 든다면 여가 시간을 쪼개서 재미있어 보이는 것을 공부하라. 여러분 자신에게 투자하는 것이니 업무 외 시간에 하는 것이 옳다. => 회사가 오래된 레거시 기술을 사용한다고 느껴진다면, 스스로 시간을 내서 새로운 기술이나 언어를 학습하고, 응용하여 토이 프로젝트를 진행해보자. 프로젝트를 진행하면서 학습한 내용을 토대로 그에 맞..
기본형 집착 애플리케이션이 다루고 있는 도메인에 필요한 기본 타입을 만들지 않고 프로그래밍 언어가 제공하는 기본 타입을 사용하는 경우가 많다. 예) 전화번호, 좌표, 돈, 범위, 수량 등 기본형으로는 단위 (인치 vs 미터) 또는 표기법을 표현하기 어렵다. 이완 관련된 리팩토링 기술은 3종류가 있다. 기본형을 객체로 바꾸기 (Replace Primitive with Object) 타입 코드를 서브클래스로 바꾸기 (Replace Type Code with Subclasses) 조건부 로직을 다형성으로 바꾸기 (Replace Conditional with Polymorphism) “클래스 추출하기 (Extract Class)” “매개변수 객체 만들기 (Introduce Parameter Object)” 기본..
산탄총 수술 어떤 한 변경 사항이 생겼을 때 여러 모듈을 (여러 함수 또는 여러 클래스를) 수정해야 하는 상황. 뒤엉킨 변경 냄새와 유사하지만 반대의 상황이다. 예) 새로운 결제 방식을 도입하려면 여러 클래스의 코드를 수정해야 한다. 변경 사항이 여러곳에 흩어진다면 찾아서 고치기도 어렵고 중요한 변경 사항을 놓칠 수 있는 가능성도 생긴다. 이와 관련된 리팩토링 기술은 3종류가 있다. “함수 옮기기 (Move Function)” 또는 필드 옮기기 (Move Field)를 사용해서 필요한 변경 내역을 하나의 클래스로 모을 수 있다, 비슷한 데이터를 사용하는 여러 함수가 있다면 여러 함수를 클래스로 묶기 (Combine Functions into Class)를 사용할 수 있다. "단계 쪼개기 (Split Ph..

문제 링크된 목록이 주어지면 인접한 두 노드마다 스왑하고 해당 헤드를 반환하라. 목록 노드의 값을 수정하지 않고 문제를 해결해야 한다.(즉, 노드 자체만 변경될 수 있음). leetcode 24 - Swap Nodes in Pairs 코드 class Solution: def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]: cur = head while cur and cur.next: # 값만 교환 cur.val, cur.next.val = cur.next.val, cur.val cur = cur.next.next return

문제 연결 리스트를 뒤집어라. leetcode 206 - Reverse Linked List 코드 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: node, prev = head, None while node: next, node.next = node.next, prev prev, node = node, next return prev

문제 정렬된 두 개의 링크된 list1과 list2의 head가 주어진다. 두 목록을 하나의 정렬된 list로 병합하고, 병합된 list의 헤드를 반환한다. leetcode 21 - Merge Two Sorted Lists 코드 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: # list1과 list2를 비교하여, ..

문제 배열 가격이 주어지는데, 여기서 가격은 당일 주식의 가격이다. 한 주식을 살 날을 선택하고 해당 주식을 팔 다른 날을 선택하여 이익을 극대화하려고 합니다. 이 거래로 얻을 수 있는 최대 이익을 반환하고, 만약 당신이 어떠한 이익도 얻을 수 없다면, 0을 반환하라. leetcode 121 - Best Time to Buy and Sell Stock 코드 class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 min_price = sys.maxsize # 최솟값과 최댓값을 계속 갱신 for price in prices: min_price = min(min_price, price) profit = max(profit, price..

Config 기반 Bean 설정 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountpolicy()); } @Bean public DiscountPolicy discountpolic..
- Total
- Today
- Yesterday
- mysql 8.0
- webflux
- 백준
- 정렬
- 파이썬
- 그리디
- 스프링부트
- 데이터베이스
- 북클럽
- 자료구조
- kotlin
- 김영한
- 노마드
- 인프런
- 문자열
- leetcode
- 스프링 부트
- 구현
- MySQL
- 노마드코더
- 코틀린
- 릿코드
- spring boot
- Real MySQL
- 스프링
- Spring
- Algorithm
- 코테
- 알고리즘
- 리팩토링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |