본문 바로가기

분류 전체보기

(172)
[알고리즘] 프로그래머스 뉴스 클러스터링 / python https://programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 lower함수로 전체 소문자 만들어주기 isalpha함수로 알파벳이 아닌 문자 제거 def solution(str1, str2): m1, m2 = [], [] str1 = str1.lower() str2 = str2.lower() for i in range(len(str1)-2): if str1[i:i+2].isalpha(): m1.append(str1[i:i+2]) if str1[len(str1)-..
[알고리즘] 프로그래머스 징검다리 건너기 / python https://programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 디딤돌의 크기가 3억으로 매우 크고, 건널 니니즈 친구들의 수도 무제한 이므로 탐색시간이 짧은 이진 탐색을 사용한다. 이진 탐색을 할 대상은 니니즈 친구들의 수 이다. MIN ~ MAX의 범위를 줄여가면서 탐색한다. check함수에서 디딤돌 - 건넌 니니즈수 가 0보다 작을 때 ck값을 1증가시키고, 0보다 크다면 연속이 아니므로 ck에 다시 0을 넣는다. 크기가 0인 디딤돌이 연속으로 k개 나타날 ..
해커랭크 10 Days of Javascript (Day0 ~ Day4) ✔ Day 0: Hello, World! input으로 문자열을 받았을 때, console에 출력. function greeting(parameterVariable) { console.log('Hello, World!'); console.log(parameterVariable) } ✔ Day 0: Data Types input으로 데이터 타입이 string인 secondInteger, secondDecimal, secondString을 받았을 때, first변수들에 맞게 형변환을 하고 sum한 결과를 출력. function performOperation(secondInteger, secondDecimal, secondString) { const firstInteger = 4; const firstDeci..
[알고리즘] 프로그래머스 튜플 / python https://programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌풀이 과정 맨앞 '{{'와 맨뒤 '}}'를 잘라준다. 그리고 '},{'을 기준으로 split하면 괄호문자가 모두 사라진다. s는 현재 ','를 포함한 문자열 원소들이다. 👉[ '1', '1,2', '1,2,3' ] 반복문에 들어오는 원소마다 ','을 기준으로 split해준다. 👉[ '1, 2' ]가 들어온다면 [ '1', '2' ]로 만든다. answer 배열에 차례대로 append해준다. def solut..
[알고리즘] 프로그래머스 크레인 인형뽑기 게임 / python https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(board, moves): answer = 0 ret = [] for move in moves: for i in range(len(board)): if board[i][move-1]: if ret and ret[-1] == board[i][move-1]: ret.pop() board[i][move-1] = 0 answer += 2 break else: ret.append(board[i]..
[JS Flow] prototype 자바스크립트가 어려운 이유는.. 8할이 프로토타입 때문이라고.... 자바의 클래스 역할을 하는 프로토타입..! 최대한 이해해서 정리했다. 생성자 constructor의 프로퍼티는 prototype, 생성자 instance의 프로퍼티는 __proto__ 생성자가 인스턴스를 만들면, 생성자의 프로퍼티인 프로토타입이 __proto__에 참조를 전달한다. 그런데 인스턴트뒤의 __proto__는 생략이 가능하다. 그래서 프로토타입이 인스턴스를 바라보고 있는것처럼 보인다. 인스턴스가 프로토타입의 메소드를 마치 자신의 것처럼 갖다쓸수 있다는것.. 예를 들어보자. Array라는 생성자로 만든 인스턴스 [1,2,3] 이 있다. Array에는 프로토타입 말고도 여러가지 프로퍼티를 가지고 있다. 이중에서 prototype만..
[JS Flow] 클로저(closure) 클로저란 ? '함수'와 '그 함수가 선언될 당시의 lexical environment'의 조합 (lexical environment : 선언당시의 환경에 대한 정보를 담는 객체) 이게 무슨 말이람??? 예시를 들어보자. 다음과 같은 코드가 있다. 처음엔 전역에서 변수를 수집한다. outer함수가 실행되면서 변수를 수집한다. outer함수가 종료되었고, outer2변수에 inner함수가 담긴다. 👉빗금이 쳐있는 이유? outer2가 inner함수를 호출할거니까 inner함수가 참조하고 있는 a를 kill 할 수 없는것임. outer2를 실행하면 inner가 참조하고 있던 a의 값이 바뀐다. outer2함수가 종료되고 2를 출력한다. 다시 outer2를 실행하면 inner가 참조하고 있던 a의 값이 바뀐다...
[JS Flow] this this 호출하는 방식 ✔ 전역공간에서 : window / global ✔ 함수 내부에서 : window / global ✔ 메소드 호출시 : 메소드 호출 주체 (메소드명 앞) ✔ callback에서 : 기본적으로는 함수내부에서와 동일 ✔ 생성자 함수에서 : 인스턴스 요약하자면 이렇다. 세부적인 내용을 살펴보자. 전역공간에서, 함수 내부에서 전역공간에서, 함수 내부에서 호출되는 this는 같다. 자바스크립트의 버그?라고 볼 수 있다구함.. 함수는 전역객체의 메소드다! 라고 생각하자. 메소드 호출시 메소드명 b앞에 있는 a가 this이다. 다음과 같은 로그가 출력된다. 메소드명은 c니까 a.b가 this이다. 다음과 같은 로그가 출력된다. 메소드 안에 내부함수가 있을때, 그 안에서 this가 문제될 수가 ..