TIL(Today I learned)(279)
-
(TIL) 20220526, 파이썬 2차원 배열 정렬, 람다식
🏴Facts(한 것) 소프트웨어 아키텍처 공부 알고리즘 문제 풀기 리팩터링 독서 🏴Findings(배운 것) 최근 카카오 스타일 코딩테스트를 치면서 파이썬 람다식에 대해 좀 더 자세하게 공부할 기회가 생겼다. 기본적으로 람다식을 정렬 알고리즘에 많이 사용되거나 map과 같이 사용되는데, 이번에 가져온 알고리즘은 2차원 배열의 정렬 람다식이다. 2차원 배열에 대해 알기전에 파이썬 기본 정렬을 알아보자면 arr = [5,4,3,1,2] arr.sort() print(arr) #1, 2, 3, 4, 5 arr = sorted(arr) #1, 2, 3, 4, 5 arr = sorted(arr, reverse = True) #5 4 3 2 1 먼저 sort()의 경우, 리스트 클래스에 존재하는 ..
2022.05.27 -
(TIL) 20220523, Iterable와 Iterator
🏴Facts(한 것) 자바 9 공부 알고리즘 문제풀기 소프트웨어 아키텍처 공부 🏴Findings(배운 것) 며칠전 반복자 패턴을 공부하면서 Iterable과 Iterator에 대한 언급이 있었다. 그래서 Java에서 말하는 Iterable과 Iterator에 대해서 알아보려 한다. 먼저 Iterable과 Iterator에 대해서 알려면, Collection에 대한 이해가 필요하다. 자바에서 Collection 인터페이스는 다음과 같이 구현되어 있다. public interface Collection extends Iterable { // .... Iterator iterator(); //... } 보다시피 Iterable을 상속받고 있다. 그리고 인터페이스에 메서드로 Iterator 클..
2022.05.24 -
(TIL) 20220521, 정적 메서드/기본 메서드, 디자인 패턴
🏴Facts(한 것) 자바 9 공부 디자인 패턴 공부하기(헤드퍼스트 디자인패턴) '결승부터 시작하는 커리어' 세션 참여 운동하기 MVC 패턴 강의듣기 🏴Findings(배운 것) 자바 8 이전까지는 모든 메서드가 추상 메서드여야 했다. -> 구현부가 없어야 했다. 하지만 자바 8 이후부터는 실제 구현이 있는 정적 메서드, 기본 메서드, 비공개 메서드를 추가할 수 있다. 먼저 정적 메서드는 인스턴스를 생성하지 않고 바로 사용할 수 있다는 장점이 있다. 특히 호출자 입장에서는 인스턴스가 어떤 클래스의 인스턴스 인지 신경쓸 필요가 전혀 없기 때문에 정적 메서드가 사용되곤 한다. public interface IntSequence { static IntSequence digisOf(int n)..
2022.05.22 -
(TIL) 20220520, 나의 강점.
🏴Facts(한 것) 데이터 중심 애플리케이션 설계 읽기 넥스터즈 지원 라인 지원 알고리즘 문제 풀기 자바9 공부하기 🏴Findings(배운 것) 오늘 DP 관련한 문제를 풀었다. DP는 점화식이 생명인지라, 점화식만 잘 만들면 문제 풀이는 아주 쉽다. 특히 DP 문제를 풀때는 Top-down 방식의 사고가 많이 도움 된다. Top-down 이라 함은 어떻게 결과값을 도출할지부터 보는게 아니라 결과값 이전의 단계는 어떤 단계 였는지, 그 전단계로 거슬러 올라가서 생각하는 것이다. 이 방법을 2-3번만 반복하면 점화식을 충분히 세울 수 있다. 오늘 자기소개서를 여럿 작성하면서 나의 강점에 대해서 돌아보게 됐다. 나의 강점은 꾸준함과 성장에 대한 열망이 아닐까 싶다. 돌이켜 생각해보면 내가..
2022.05.21 -
(TIL) 20220518, 데이터 중심 애플리케이션 설계
🏴Facts(한 것) 데이터 중심 애플리케이션 설계 스터디 알고리즘 문제 운동하기 🏴Findings(배운 것) 알고리즘 문제를 풀다가 재밌는 파이썬 문법이 있어서 TIL에 남겨 놓으려 한다. 집합과 관련한 문법으로, 파이썬의 경우 set 자료구조를 지원하기 때문에 set을 통해서 합집합과 차집합, 교집합을 구할 수 있다. 잠시 문법을 보자면 #합집합 list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] union = list(set().union(list1, list2)) # union = list(set(list1) | set(list2)) #교집합 intersection = list(set(list1) & set(list2)) #intersection = lis..
2022.05.19 -
(TIL) 20220517
🏴Facts(한 것) golang - TCP chat 만들기 프로그래머스 문제풀기 🏴Findings(배운 것) 학교 네트워크 수업 과제로 golang을 활용한 TCP Chat 구현이 나왔다. 제출하기 4시간 전부터 시작해서 다 완성하진 못했지만 통신은 가능하게 구현했다. 구현하는 과정에서 TCP에 대한 이해도가 조금 더 높아져서 그걸로 만족하고 있다. 데이터 중심 어플케이션 책을 구매했다. 코드숨 다음 스터디에 사용되는 책인데, 기대가 된다. 많은 분들이 추천하는데는 이유가 있지 않겠는가. 🏴Affirmation(자기선언) 매일 알고리즘 문제 1문제 이상 풀기 -> 성공 수업 공부한 것은 일주일 내에 포스팅하기 -> 실패 자바 8버전에 익숙해지기 -> 실패 🏴여담 좋아요
2022.05.18