플러터 강의 : The Complete Flutter Development Bootcamp with Dart Introduction to cross-Platform Development with Flutter and Dart Dr. Angel Yu 의 강의이다. Udemy에서 강의를 제공하며 대부분의 플러터 강의는 이것을 기반으로 했다고 해서 이것을 선정하였다. 한국어로 자막 및 대본이 있어서 공부하는 데 큰 지장은 없으며, 영어 발음도 또렷해서 영어공부도 좋다. 플러터란 무엇인가? ios와 android에서 모든 코드 베이스를 유지하며 앱을 보완 및 업데이트를 꾸준히 안정적이게 유지하는 것은 꽤나 어렵다. 이런 레이아웃을 유지하는 것과 멋진 인터페이스를 쉽게 디자인 할 수 있도록 하는 개발 도구 키트이..
오늘은 코드 트리 shorten time technique을 정리했다. https://hajm0702.tistory.com/35 지금까지 한 거를 내일 정리하고, 내일부터는 플러터 강의를 들어야겠다. Udemy 강의를 구매했으니 돈 값은 써야지. 2학기 때 쓰니까 미리 공부해둬야 개발하는데 편할 것이다. 백엔드도 공부해야하는데 어렵다... [코드트리] Intermediate Mid - Shorten Time Technique[Prefix Sum] Shorten Time Technique 문제 해결 방식의 시간복잡도를 줄이는 기술이다. Prefix Sum[누적합] 누적합 배열을 만들어서 시간복잡도를 줄인다. 특정 배열이 주어졌을 때, 그 배열을 통해서 배열의 값들에 hajm0702.tistory.com 관..
Shorten Time Technique 문제 해결 방식의 시간복잡도를 줄이는 기술이다. LR Technique[왼쪽 오른쪽 순회 기술] 값을 도출하기 전에 미리 왼쪽을 순회해서 얻은 값, 오른쪽을 순회해서 얻은 값을 구하고 이를 통해서 결과를 도출하여 시간 복잡도를 줄인다. 필요성 : 중복되는 계산을 줄일 수 있다. 보통 미리 만든 배열을 통해서 값을 구한다면 시간복잡도가 줄어든다. 효용성 : 시간 복잡도가 줄어든다. 물론 여기서도 반복되는 행위에 대한 시간 복잡도는 여전하지만, 반복하는 횟수와 입력된 변수 개수의 곱으로 나타나는 시간복잡도와는 달리 LR 테크닉을 사용하면 더하기로 나타나는 시간복잡도로 변하게 되어 좋다. 이걸 언제 써야할지.. 는.. 아직 와닿지 않는다. 문제를 더 풀어봐야할 것 같다..
Shorten Time Technique 문제 해결 방식의 시간복잡도를 줄이는 기술이다. Grid Compression[좌표 압축] 입력으로 받거나 이미 주어진 수의 범위를 압축하는 것이다. (빈 공간이 없도록 압축) 쉬운 예시로 총 1~ 20의 범위를 갖게 되는 수열 1, 3, 5 ,7 ,13, 20 이 주어져있다. 이것을 압축 시켜서 [1]-1, [2]-3, [3]-5, [4]-7, [5]-13, [6]-20 으로 변환 하여, 1,2,3,4,5,6 으로 압축시키고, 압축시킨 것에서 5번을 선택하면 13의 값을 반환하도록 한다. 필요성 : 예를 들어 원소가 갖는 범위가 1~1,000,000,000 이라고 하자. 다만, 배열에서 있는 것은 1, 2, 7 , 9 , 102, 10000000 이렇게 있다고 ..
Shorten Time Technique 문제 해결 방식의 시간복잡도를 줄이는 기술이다. Prefix Sum[누적합] 누적합 배열을 만들어서 시간복잡도를 줄인다. 특정 배열이 주어졌을 때, 그 배열을 통해서 배열의 값들에 대해 누적된 합을 '누적합 배열'에 저장한다. '누적합 배열'의 인덱스가 올라갈 때마다, 원래 주어진 특정 배열에서 접근하는 값의 인덱스도 올라간다. Ex) 특정한 배열이 주어졌을 때, 단순하게 0번부터 현재 인덱스까지의 합을 누적합 배열에 넣는다고 가정하자. 그렇다면, 특정 배열의 값이 1 3 7 11 23 이렇게 주어진다면, 누적합 배열은 1 4 11 22 45 이렇게 배열이 구성된다. 누적합 배열[0]=특정 배열[0],누적합 배열[1]=특정 배열[0]+특정 배열[1], 누적합 배열..
면접 Technical Interview의 종류. -알고리즘, 데이터 구조. (흔하게 물어본다.) -시스템 디자인 (석-박사는 이런 거 물어본다고 한다.) -domain specific interview. -project interview (간단하게 질문함. 어떤 역할을 했고, 어떤 어려움을 겪고 해결했는지 등등) 이력서를 화려하게 쓰는 것도 좋지만, 이력서 한 줄 한 줄을 모두 자신이 책임질 수 있어야한다. 이력서 내용을 모두 자신이 완벽하게 이해하고, 설명할 수 있어야한다. 중요한 건 깊이 있는 몇 개를 자신의 주요 컨셉으로서 적어야 한다. 너무 많이 쓴다고 좋지 않다. resume(서류 통과) 내용은 짧고 간결하게 강조. 최대한 잘 정렬해야 한다. Education(내가 무엇을 공부했고), Expe..
6회차 목표 : C++ 공부 및 DFS 알고리즘 공부. -C++ 공부 및 DP(다이나믹 프로그래밍) 알고리즘 공부. 일정 : 8/4 16:00~19:00 6회차 공부 내용 : -C++ 공부 TCP School의 내용을 토대로 공부하였다. C++은 C와 마찬가지로 구조체를 만들 수 있는데 C와는 달리 함수까지도 멤버 변수로 가져갈 수 있다! C++의 구조체는 객체 지향 프로그래밍의 Class의 기초가 된다. 클래스는 클래스의 멤버 변수를 프로퍼티(property), 멤버 함수를 메소드(method)라고도 한다. 객체 지향프로그래밍은 모든 데이터를 객체로 보며, 객체가 프로그래밍의 중심이 되게 하는 것이고, 객체를 만들어내기 위한 틀이 바로 클래스이다. 추상화, 캡슐화, 정보은닉, 상속성, 다형성과 같은 특..
DFS DFS는 그래프 자료구조에서 정의 된다. 그래프를 탐색하는 방법으로 Depth First Search의 약자, [깊이 우선 탐색]이라고 한다. 그래프의 원소를 타고 내려가서(깊게) 탐색한 후 끝 지점을 만나면, 다시 이전으로 돌아가서 다시 탐색을 한다. DFS는 재귀함수를 이용해서 구현하며, 이미 방문한 원소(지점이라고 하자.)는 다시 방문하지 않아야 효율이 좋기 때문에, 이전에 방문한 지점은 어떠한 처리를 해서 더는 방문하지 않도록 하자. 어떠한 처리는 visited라는 배열을 만들어서 지점에 해당하는 배열의 원소에 체크를 해두는 것이다. DFS를 이용하게 되는 그래프는 인접 행렬 혹은 인접 리스트로 나타낼 수 있다. DFS를 이용하여 문제를 풀어보자. 코드트리 : https://www.code..