본문 바로가기

CS/Algorithm

(5)
파이썬에서 in 연산자 (연결 연산자)는 선형 탐색에서 어떤 힘을 발휘하는가? Insight 1.파이썬에서의 in연산자(연결연산자)는 이미 sequence안에서 선형 탐색을 해주는 기능이 있다. 2.파이썬스러운 코딩은 in을 활용해서 선형탐색 시간을 단축하는 것이다. 3.그래서 for문(반복문)을 쓰지 않고 if문(분기문) 하나로 문제를 해결할 수 있다. 4. pep8스타일을 지향하는 것 특히 간결하게 코딩을 하는 것이 성능 향상의 지름길이다. 5.같은 기능 서로 조금식 다른 방법의 함수를 코딩하면서 어떤것이 더 빠른가 생각해 보게 되었다. 6.in 키워드는 선형탐색을 통해 O(n)의 시간 복잡도를 가진다. 선형 탐색이란 리스트의 처음부터 끝까지 순서대로 하나씩 탐색을 진행하는 알고리즘입니다. 선형 탐색함수를 만들고 for문 사용과 사용하지 않는 예시) 어떤 원소가 리스트 안에 포..
[python] string 입력의 복소수 두개를 곱해 string 으로 출력 하기 # string 타입의 복소수의 두수의 연산을 입력받아 # 서로 곱하고 출력을 다시 string으로 하시요 # Input: "1+-1i", "1+-1i" # Output: "0+-2i" # 설명: (1 - i) * (1 - i) = 1 - i - i + i^2 = -2i, def complexNumberMultiply(a, b): aa = a.split("+") bb = aa[1].split("i") aaa = aa[0] bbb =bb[0] cc = b.split("+") dd = cc[1].split("i") ccc = cc[0] ddd =dd[0] a=int(aaa) b=int(bbb) c=int(ccc) d=int(ddd) f = (a*c)-(b*d) g = (b*c)+(a*d) answer = s..
[JavaScript] 최빈값을 정해진 순서대로 답하기 nums는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를 k 개수만큼 return해주세요. 예) nums = [1,1,1,2,2,3] k = 2 return [1,2] function topK(nums, k) { let K = k // 받는배열 let Nums = nums; // 유니크한 배열 let uniq = Nums.reduce(function(a,b){ if (a.indexOf(b) (a[b]=0,a),{}); // 각 키값별로 값이 여러개인 경우 1을 값에 더해준다 for(let i = 0;i
괄호 짝 찾기 알고리즘 s는 여러 괄호들로 이루어진 String 인자입니다.s가 유효한 표현인지 아닌지 true/false로 반환해주세요 num: 종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 return: true/false 예 s = "()[]{}" return true 예 s = "(]" return false function isValid(s) { let arr = s.slice(); for (let i = 0; i
1022 과반수 숫자 구하기 input ex) nums = [3,2,3] output ex) return 3 function moreThanHalf(nums) { // 받는배열 let Nums = nums; // 유니크한 배열 let uniq = Nums.reduce(function(a,b){ if (a.indexOf(b) (a[b]=0,a),{}); // 각 키값별로 값이 여러개인 경우 1을 값에 더해준다 for(let i = 0;i