분류 전체보기250 Leetcode 15번 문제 풀이 개요 Leetcode 에서 알고리즘 문제를 풀고 배운 내용을 정리하기 위해 작성하였습니다. 문제 : 15. 3Sum 주어진 배열에서 요소 3개를 골라 합했을 때 0이 되는 것들만 배열로 추려내서 반환하기. 단 중복되는 것은 피하기(not allowed duplicate triplets) 풀이 문제 풀이를 위해서 먼저 주어진 배열을 오름차순으로 정렬해야 한다. 정렬을 하면 합했을 때 0이 되는 요소를 찾기 쉬워지기 때문이다. 그래서 만약 다음과 같이 정렬을 했다고 하자. 현재 배열 요소가 -2 라면, 그 다음 요소와 배열 마지막 요소로부터 인덱스를 줄여나가면서 적합한 요소를 추려낸다. 이 때 현재 배열 요소의 다음 값 인덱스를 low, 배열 마지막 요소 인덱스를 high 라고 하자. 현재 배열 요소가 -2.. 2020. 2. 3. JS의 비동기 동작에 관한 글 https://www.freecodecamp.org/news/thrown-for-a-loop-understanding-for-loops-and-timeouts-in-javascript-558d8255d8a4/ 2020. 1. 31. text-align을 이용해 블록요소 중앙에 위치시키기 개요 모던 웹 디자인 책을 읽으며 배운 점을 정리합니다. text-align 책에서 ul 태그를 text-align을 사용하여 중앙 정렬합니다. text-align으로 어떻게 중앙 정렬이 가능한지 궁금하였습니다. text-align 속성은 인라인 요소를 문서의 수평측에서 특정 위치로 정렬할 때 사용합니다. (img 태그의 경우 text-align 속성을 직접 적용하면 정렬되지 않고 블록 요소로 감싸준 뒤 사용해야 정렬됩니다) 수평측에서 블록요소 정렬하기 그러면 텍스트를 정렬 시키는 위 속성으로 블록 요소를 정렬할 수 있을까요? 네 있습니다. 일단 일반적인 블록 요소에 text-align 속성을 적용하면 정렬이 되지 않습니다. 아래 그림과 같이 text-align: center 속성을 주어도 정렬이 되지 .. 2020. 1. 29. Leetcode 4번 문제 풀이 개요 Leetcode 에서 알고리즘 문제를 풀고 배운 내용을 정리하기 위해 작성하였습니다. 문제 : 4. Median of Two Sorted Arrays 주어진 두 배열들에서 중간값(Median)을 구해야 함. ** 중간값은 말 그대로 배열의 중간에 위치한 값임. 이 때 배열요소의 갯수가 홀수이면 중간에 있는 요소가 정답이 되지만 짝수이면 중간위치 주변의 값들의 평균이 정답이 됨. 풀이1 : Bruce force 주어진 두 배열을 합친 후, 합쳐진 배열에서 중간값을 찾음. 이 때의 시간복잡도는 O(m + n) 이며 공간복잡도 또한 O(m + n) 으로 동일함. 풀이2 : Binary Search Binary Search 로 풀기 위한 방법에는 배열을 적당히 나누는 기법이 들어가는데, 이에 대한 이해가 .. 2020. 1. 24. 모던 웹사이트 디자인의 정석 Question Q) 왜 clear:both를 했는데 레이아웃 깨짐현상이 잡히는걸까? A) 우선 li 태그들을 가로로 배치했다는 점에 주목한다. 이 때 li 태그의 display 속성은 list-item 이다. 이는 다음과 같다. List 계열 태그에서는 특이하게도 list-item라는 display 속성을 사용합니다. 기본적으로는 Block-level의 요소들처럼 작동하지만, 추가적으로 list-style 계열의 CSS 속성을 이용할 수 있다는 특징이 있습니다. 출처 : http://dev.epiloum.net/834 그러므로, div 태그에 사용했던 것처럼 float 속성을 사용하여 가로로 배치할 수 있게 된다. 그런데, 컬럼 탈락 현상을 사용하기 위하여 li 태그의 길이를 50%로 하였다. 이렇게 했을 때 floa.. 2020. 1. 22. vertical-align 속성으로 이미지 공백 지우기 개요 모던 웹사이트 디자인의 정석 책을 공부하면서 새로 알게된 부분을 정리하기 위해 작성하였습니다. 다른 분들께도 도움이 됬으면 합니다. vertical-align vertical-align은 기본적으로 인라인 요소들에 대해서 수직적으로 정렬하기 위해서 사용합니다. 기본 개념은 이러한데, 더 깊은 내용이 담겨있습니다. vertical-align 속성은 기본적으로 다음과 같이 있습니다. baseline - 기본값, 부모 요소의 기준선에 맞춤, 기본 옵션 top - 요소의 상단과 자식 요소를 전체 줄의 상단에 맞춤 middle - 요소의 중간과 자식 요소를 전체 줄의 중간에 맞춤 bottom - 요소의 하단과 자식 요소를 전체 줄의 하단에 맞춤 vertical-align 의 속성에 대한 더 자세한 내용은 다.. 2020. 1. 21. Leetcode 5번 문제 풀이 개요 Leetcode 에서 알고리즘 문제를 풀고 배운 내용을 정리하기 위해 작성하였습니다. 문제 : 5. Longest Palindromic Substring 주어진 문자열 내에서 팰린드롬인 문자열을 찾아 반환해야 함. 풀이1 : Brute force 설명 Brute force(무차별 대입) 방식으로 풀 경우, 문자열 내 모든 문자마다 접근해서 팰린드롬인지 확인하여야 한다. 이 경우 시간 복잡도는 O(N^3) 이 나온다 ** 시간 복잡도가 O(N^3) 인 것은 루프로 각 문자마다 접근을 하고, 팰린드롬인지 검사를 위해 이중 루프를 돌기 때문이다. (이중 루프를 어떤 방식으로 도는지에 대해선 정확히 모르고, 좀 더 자료조사가 필요) 그러므로 무차별 대입보다 좀 더 나은 방법이 필요하다. 다른 방법으로 DP.. 2020. 1. 12. Leetcode 3번 문제 풀이 개요 Leetcode 에서 알고리즘 문제를 풀고 배운 내용을 정리하기 위해 작성하였습니다. 문제 : 3. Longest Substring Without Repeating Characters 문자열내에서 중복이 없는 가장 긴 문자열의 길이를 반환해야 함. 풀이1 : Brute force 설명 Brute force(무차별 대입) 방식으로 풀 경우, 주어진 문자열 내 모든 문자들을 검사하여 풀 수 있다. 각각의 문자별로 루프를 돌아서 가장 긴 substring의 길이를 반환한다. 구체적으로는 다음과 같다. 전체 문자열 길이만큼 루프를 돌면서 조건에 따라 임시 문자열에 각 문자를 대입한다 조건 1 : 만약 임시 문자열이 비어 있으면 최초 문자를 대입한다 조건 2 : 만약 특정 문자와 임시 문자열을 중복 체크하여.. 2020. 1. 9. 리액트 기본 과정 정리 - 10 [앞으로의 공부 방향] 이 글은 Velopert 님의 인프런 - 누구든지 하는 리액트 강의 를 참고하여 작성한 글입니다. 혹시 저작권 상의 문제가 발생할시에 내리도록 하겠습니다. 리액트는 따지고보면 정말 간단한 라이브러리 입니다. 지금까지 공부해본 것들을 요약해보면 재사용 가능한 컴포넌트를 만듭니다. props 는 부모에게서 전달받는 값입니다. state 는 자기 자신이 지니고 있는 데이터입니다 props 나 state 가 바뀌면 컴포넌트는 리렌더링 합니다. LifeCycle API 를 통해 컴포넌트 Mount, Update, UnMount 전후로 처리 할 로직을 설정하거나 리렌더링을 막을 수 있습니다. 스타일링 리액트 컴포넌트를 스타일링 하는 방법은 여러가지 입니다. 일단, 가장 기본적인 방법으로는 일반 .css 파일을 만들.. 2019. 12. 13. 이전 1 ··· 17 18 19 20 21 22 23 ··· 28 다음