- strstr
- leetcode
- 2019
- two-sum
- 병렬프로그래밍
- Parallelism
- 동시성 프로그래밍
- concurrency vs parallelism
- longest substring
- 개발자로드맵
- Today
- Total
목록전체 글 (5)
노력만이 살길
병렬 프로그래밍을 작성하다보면, Concurrency, Parallelism에 대한 내용이 자주 나오게 된다. 항상 헷갈리는 이 두가지 단어의 의미를 프로그래밍 관점에서 정리해보도록 하자! 단어의 정확한 의미를 알고 있는 것은 건물을 지을때 기초를 다지는 것과 비슷하다고 생각한다. 단어의 정확한 의미를 알게 되면, 해당 단어에서 파생된 많은 응용지식들을 이해함에 있어서 도움이 많이 된다. Concurrency 한국어로 "동시성"이라고 해석되며 프로그래밍 관점에선, 보통 하나의 CPU Core가 여러개의 일을 효율적으로 처리하는 것을 의미한다. 물론 여러개의 CPU가 일을 효율적으로 처리하는것또한 포함 된다. Concurrency는 프로그램을 더 유용(more usable)하게 만드는 것을 의미한다. 좀 ..
오늘의 풀어볼 문제는 "문자열 안에서 문자열 검색하기" 이다. (link : leetcode.com/problems/implement-strstr/ ) 자 그럼 바로 시작해보자 간단하게 설명하면 주어진 문자열(haystack)에서 특정 문자열(haystack)이 있는지, 있으면 몇번째에 위치해 있는지 찾는 문제이다. 문제 풀이 방법은 다음과 같이 풀었다. [0] StringBuffer와 Map을 준비한다. StringBuffer는 subString을 조합하기 위함이고, Map은 만들어진 subString을 key로, 위치를 value로 저장하기 위함이다. [1] 먼저 0 ~ N(length of needle) - 1 의 subString을 구한다. 해당 subString을 Map에 저장, 이때 subSt..
알 - 하 ! (알고리즘 하이 라는 뜻) 오늘 풀어볼 문제는 "중복되지 않는 가장 긴 Substring 구하기" 이다. (link : leetcode.com/problems/longest-substring-without-repeating-characters/) 문제 설명을 간략하게 하자면, 문자열이 주어진다. 이 때, 문자열엔 알파벳, 숫자, symbols, space가 들어 갈 수 있다고한다. 이때 중복되지 않으면서 이어지는 가장 긴 문자열의 길이를 구하는게 문제이다. 이렇게 설명하면 좀 어려울 수 있으니, 간단하게 설명하면, String : "pwwkew" 일때, 중복없이 가장 긴 substring은 "wke"가 된다. 사실 처음에 봤을때 굉장히 쉬운 문제인줄 알았으나,,, 생각보다 까다로운 문제였다..
오늘 풀어 볼 문제는 "두 수의 합 구하기" 이다. (link : leetcode.com/problems/two-sum/ ) leet code > Problems의 가장 첫 번째 문제이기 때문에 많이들 풀어봤을꺼라 생각한다. 그럼 바로 시작해보자. 간단하게 문제에 대해 설명하자면 target 숫자와 숫자가 담긴 배열이 주어졌을때, 배열의 두개의 숫자의 합이 target 이 되는 두 수의 위치를 구하는 문제이다. 예를 들면, target이 9이고, 숫자 배열이 [1,2,3,4,5] 일 때, 정답은 [3,4] 가 될 것이다. 단, target이 될 수 있는 경우의 수는 오직 한가지라 했으니 중복 case에 대해선 고려 하지 않아도 된다. 문제 풀이 방법은 다음과 같이 풀었다. [0] 배열의 원소값을 key로..
Spring-Boot 설정 중에 생긴일 .... 이 이야기는 최근에 Spring-Boot를 활용한 Project를 시작하게 되면서 경험하게 된 일이다. 회사에서 Spring-Boot를 활용한 프로젝트를 맡게 되었고, 운이 좋게도 밑바닥 부터 구성을 할 수 있는 기회가 주어졌다. 처음에 Spring-Boot 셋업을 하면서 내가 신경 썼던 부분은 바로 "Profile" 이였다. Spring에는 "Profile"이란 개념이 있는데, 공식 문서에서 발췌하면 다음과 같다. "Spring Boot lets you externalize your configuration so that you can work with the same application code in different environments." 같은 ..