본문 바로가기

2. 우당탕탕 개발자111

2020.08.21 Two Sum 풀이 문제 ) 중복을 허락한 정수의 배열이 주어져서 두개의 원소를 선택해 합했을 때 타겟 숫자와 동일 할 경우, 그 두 원소의 index의 배열은 어떻게 되는가? 예를 들면, [2,4,6,11] 과 8의 타겟이 주어진다면, 2와 6이 합쳐져 8의 원소가 된다는 걸 알 수 있다. 따라서 정답은 [0, 2]가 된다는 걸 알 수 있다. 이걸 컴퓨터가 알아 들을 수 있도록 식을 구성하는 것이 알고리즘의 핵심이다. 단순히 for문을 중첩해서 답을 구했더니, 268ms 의 어마무시한 런타임을 자랑했다. var twoSum = function(nums, target) { for(let i = 0; i < nums.length - 1; i++){ for(let j = 1; j < nums.length; j++){ if(i .. 2020. 8. 22.
2020.08.20 Palindrome Linked List 풀이 문제 ) linked array 가 주어졌을 때, 해당 배열이 회문 되는 지 여부를 체크하는 문제 알아야 할 점) Palindrome 회문 : 1-2-2-1, 1-2-3-4-4-3-2-1 Math.ceil (올림), Math.floor(내림), Math.round(반올림) linked array list vs array (자바스크립트 배열 아님) : 삽입/삭제가 쉬움, 특별원소 찾을 때 O(n) Javascript Prototype (참고문헌 : 링크) 자바스크립트는 프로토타입 기반의 언어라고 한다. 어느 곳에 빈 Object 가 있고, 그 object에는 일정한 속성이 담겨 있다. 생성자를 통해서 우리는 그 object를 가져다 쓸 수 있다. 이때 객체는 언제나 함수로 생성된다. object도 사실은 .. 2020. 8. 20.
2020.08.19 Valid Parentheses 풀이 문제 : Valid Parentheses '(', ')', '{', '}', '[' ']' 만이 문자를 구성할 수 있다라고 할 때, 유효한 지 아닌지 판별하는 문제. 예를 들면 '{()}'은 유효하고, '{(}'은 유효하지 않은 문자열이다. 풀이 : 1) 주어진 문자열이 홀수면 반드시 유효하지 않다. 2) 문자열이 0이면, 반드시 유효하다. 3) 짝수의 문자열일 경우, 각각 여는 '(', '{', '['표현이 나오면 닫는 표현도 문자 반대 순서대로 나와야 한다. 여는 표현들이 나오면 arr 에 넣어주고, 닫힘 표현이 나오면 arr에 여는 표현이 있는지 체크 후, 있으면 제거 | 없으면 즉시 false /** * @param {string} s * @return {boolean} */ var isValid.. 2020. 8. 20.
2020.08.18 findUnsortedSubarray 풀이 문제 : 정수 배열이 주어지면, 오름차순으로 배열되지 않은 연속적인 sub-array의 갯수를 찾는 문제. 풀이) 연속적인 sub-array 를 묻는 문제는 start / end 나 mid/result 같은 변수를 두개를 두어, 중간 과정을 기록하면서 마지막에 결과 값을 도출해내는 식의 풀이가 많은 것 같다. 이 문제의 경우, 오름 차순으로 정렬된 타겟 배열을 만들고, 모든 배열의 원소를 하나씩 순회하면서 타겟 배열과 값이 다를 때, 그 인덱스의 시작점을 start에 기록하고, end는 그 인덱스 중 가장 큰 수를 기록하는 식이다. 이런식으로 뭔가 중간의 값과 비교하면서 작거나 큰 값을 남겨야 할 때는 Math.min | Math.max 매소드를 활용하는 것이 좋다. 이 때, Array.prototype.. 2020. 8. 19.
기술 발표) GraphQL 보안 위협과 지키는 방법 악성 Query 로 부터 당신의 소중한 GraphQL App을 지키는 방법 GraphQL gives enormous power to clients. But with great power come great responsibilities 그래프큐엘은 클라이언트에게 막대한 권한을 주는 만큼, 클라이언트로 인한 여러 보안 상의 위협을 받기도 합니다. 우리의 작고 소중한 앱을 위협하는 악성 쿼리 중 Ddos 공격에 대해서 해결책 중심으로 살펴보겠습니다. (feat. 개구리앱) 공격! :값비싸고 중첩된 쿼리로 너의 작고 소중한 앱 서버를 파괴할 거야! 지금 보고 계시는 데이터 관계도는 개구리의 관계도입니다. 서비스가 복잡하면 할수록 데이터 테이블 간의 관계가 복잡해지고 서로가 서로를 참조하는 관계가 얼마든지 발생.. 2020. 7. 20.
개발자 이력서 쓸 때 TIP #코드스테이츠 윤상호 강연자의 경력 없는 이제 시작하는 개발자를 위한 세션 : 매우 유익하고 현실적이어서 좋았다. --------이하 중요한 부분 정리---------- 개발자에게 중요한 건 -> 경력 경력이 없을 경우 : open sourse에 기여해라. (단순 오타 고치기 부터, 간단한 package 네임 기재하는 단순 노가다 부터 시작) 필터링 조건 : is:issue is:open label:"good first issue" language:javascript 오픈 소스 4번 기여하면 티셔츠 보내주는 행사도 있다. 곧 다가오니 체크해볼 것 https://hacktoberfest.digitalocean.com/ 구글 입사 제의 받은 포트폴리오 텀블벅이라는 크라우드 서비스에 런칭함 -> 사용자의 후기.. 2020. 7. 10.