Loading...
2020. 10. 27. 23:12

[TIL 2020-10-27 화] js 바인딩, 얕은복사, 깊은복사

2020/10/27 - [자바스크립트_개념편] - [javascript] this 바인딩(어렵다 어려워) [javascript] this 바인딩(어렵다 어려워) * boycoding.tistory.com/22?category=915176 jeonghwan-kim.github.io/2017/10/22/js-context-binding.html 글을 읽고 공부하며 요약정리한 글입니다 this는 함수가 호출되는 패턴에 따라서 다른 객체를 참조(바.. haerang94.tistory.com 2020/10/27 - [자바스크립트_개념편] - [javascript] 얕은 복사 (참조 복사), 깊은 복사(값 복사) [javascript] 얕은 복사 (참조 복사), 깊은 복사(값 복사) 출처: velog.io/@th0..

2020. 10. 27. 22:58

[javascript] this bind, this 바인딩(어렵다 어려워)

* boycoding.tistory.com/22?category=915176 jeonghwan-kim.github.io/2017/10/22/js-context-binding.html 글을 읽고 공부하며 요약정리한 글입니다 this는 함수가 호출되는 패턴에 따라서 다른 객체를 참조(바인딩) 한다 객체 메서드 호출: 메서드를 호출하는 객체에 바인딩 함수를 호출: 전역 객체에 바인딩 (내부 함수 호출 포함) 생성자 함수 호출: 새로 생성되는 객체에 바인딩 1. 객체 메서드 호출 const a={ name:'sara', output:function(){ console.log(this.name); } } const b={name:'b'} b.output=a.output a.output(); //sara 암시적 바..

2020. 10. 27. 00:54

[javascript] 얕은 복사 (참조 복사), 깊은 복사(값 복사)

출처: velog.io/@th0566/Javascript-%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%AC-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%AC wanna-b.tistory.com/18 이 글은 위 글을 공부하면서 제가 기록한 글입니다. 자바스크립트 값의 타입은 원시 타입과 참조 타입이 있다 원시타입 참조타입 number string boolean null undefined object symbol 1. 깊은 복사, 값 복사 (Deep Copy, 실제로 새로운 변수와 값을 만들어내는 복사) 원시값은 새로운 배열에 같은 값을 새로 생성(!)해서 그 값을 새로운 변수에 할당한다 let a=100; let b=a; a=200; console.log(a); //2..

[LeetCode] 937. Reorder Data in Log Files (python, javascript)

1. python class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: nums=[] letters=[] for log in logs: if log.split()[1].isdigit(): nums.append(log) else: letters.append(log) # slice로 잘라서 그 후를 모두 지정할 수 있다 letters.sort(key=lambda x:(x.split()[1:],x.split()[0])) # print(nums) # print(letters) return letters+nums 2. javascript /** * @param {string[]} logs * @return {string[]} */ var..

[프로그래머스] 거스름돈 (파이썬, javascript)

dp인건 알겠는데 어디서 계산이 틀린 부분이 있는지 한참을 안되다가 다시 해보니까 3분만에 풀림 이것이 인생 1. 거스름돈 1,2,5원 중 1원을 낼 수 있는 것 다 더해주고 그다음 2원으로 계산되는 것 다 내준다. 그 다음 5원 순으로 더한다 배열 말고 그냥 dict을 사용했고 from collections import defaultdict def solution(n, money): dp=defaultdict(int) dp[0]=1 for m in money: for i in range(m,n+1): dp[i]+=dp[i-m]%1000000007 return dp[n] 2. 자바스크립트 function solution(n, money) { var answer = 0; let dp=new Array(n+..

[프로그래머스] 가장 긴 펠린드롬 (파이썬, javascript)

* 문자열 뒤집기 [::-1] 또는 ''.join(reversed(s)) def solution(s): answer = 0 for i in range(1,len(s)+1): for j in range(0,i): if s[j:i]==s[j:i][::-1]: if len(s[j:i])>answer: answer=len(s[j:i]) return answer 2. javascript 제일 긴 문자열부터 모든 위치에 있을 수 있는 경우의 수를 검사한다. function solution(s) { for(let i=s.length;i>=1;i--){ let flag=false; for(let j=0;j

[프로그래머스] 튜플 (문자열, 정렬, python, javascript)

1. python 풀이 def solution(s): answer = [] temp=[] for i in s[2:-2].split('},{'): temp.append(i.split(',')) temp.sort(key=len) for t in temp: for item in t: if int(item) not in answer: answer.append(int(item)) return answer 2. javascript 풀이 function solution(s) { var answer = []; s=s.split("").map(ch=>{ if(ch==="{" || ch==="}"){ return ""; } return ch; }).join("").split(","); const dict={}; for(l..

[프로그래머스] level3. 베스트앨범 (파이썬, javascript)

1. 파이썬 def solution(genres, plays): answer = [] dic={} for g,p in zip(genres,plays): if g not in dic: dic[g]=p else: dic[g]+=p # 곡 내림차순 정렬 sdic=sorted(dic.items(),key=lambda x:x[1],reverse=True) for s in sdic: temp=[] for i,p in enumerate(plays): if genres[i]==s[0]: temp.append((p,i)) cnt=0 temp=sorted(temp, key=lambda x:(-x[0],x[1])) for t in temp: num,idx=t answer.append(idx) cnt+=1 if cnt==2:..

[프로그래머스] 1차 캐시 (파이썬, javascript)

deque은 remove나 insert함수도 있다 1. 파이썬 def solution(cacheSize, cities): answer = 0 cache=[] for c in cities: c=c.lower() if c not in cache: if cache and len(cache)>=cacheSize: cache.pop(0) if cacheSize>0: cache.append(c) answer+=5 else: cache.remove(c) cache.append(c) answer+=1 return answer 2. 자바스크립트 function solution(cacheSize, cities) { const cache=[]; var answer = 0; for(let i=0;icacheSize)cache..

[프로그래머스] 땅따먹기 (파이썬, javascript )

dp 문제 열이 연속으로 같지 않게 최대값 구하는 문제 1. 파이썬 def solution(land): for i in range(1,len(land)): for j in range(4): land[i][j]+=max(land[i-1][:j]+land[i-1][j+1:]) return max(land[len(land)-1]) 2. javascript function solution(land) { var answer = 0; let n=land.length; let dp=Array(n).fill(0).map(()=>Array(4).fill(0)); for(let j=0;j