Loading...

[백준 14003번] 가장 긴 증가하는 부분 수열 5 (bisect, python)

www.acmicpc.net/problem/14003 14003번: 가장 긴 증가하는 부분 수열 5 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 4번 문제와 똑같이 풀면 된다. 이번에는 q에 초기 숫자를 하나 넣어주는 대신 비어있거나 현재 원소가 q의 마지막 원소보다 크면 추가해주는 방식으로 했다. n의 범위만 달라지므로 초기값을 넣어줬었다면 이 부분만 주의하면 된다. temp 배열을 출력하면 이렇게 나오고 [(0, 10), (1, 20), (0, 10), (2, 30), (1, 20), (3, 50)] ans 배열에 넣을..

[면접 후기] 마이리얼트립 기술면접 탈락

상시 채용이나 혹시나 했는데 탈락했다 띠로리 ㅠ 객관적으로 사전과제나 면접은 잘 봤다고 생각하고 인원이 필요해서 뽑기보다는 뛰어난 사람이 오면 채용한다는 느낌의 상시 채용이라 안되었을 가능성이 크다고 생각한다 이메일에도 한정적인 TO하에 ~ 이런 얘기도 있고 지금 취준난이기 때문인지 인기가 많아서인지 계속해서 지원하는 사람들이 많아서 회사 입장에서는 아쉬울 게 없었던 것 같다 ​ 이틀동안 진행된 과제에 면접 준비까지 좀 시간이 걸렸는데 아깝게 되었다 ㅠㅠ 이번 경험으로 경력없는 신입으로는 상시채용을 넣는 것은 아무래도 안될 가능성이 높고 우선순위에서는 뒤로 미뤄야하나 생각이 들었다 ​ 사실 기술까지는 통과하고 인성면접에서 안 될 가능성이 높다고 생각했는데..ㅠㅠ 한 군데 넣고 기다리고 하기보다 여러군데 ..

[백준 14002번] 가장 긴 증가하는 부분 수열 4 (python, bisect, 어려움)

www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 1,2,3 까지는 쉬웠는데 4부터 난이도 급상승 ㅠ O(n^2)으로 푼 사람이 많은데 n이 커진 문제인 경우 못풀걸 알아서 더 줄여서 풀고 싶었다 혼자서 시도해보다가 다른 사람 풀이 참고해서 풀었다. 아직 알고리즘 머리가 부족하군.. 이전 문제들에서 이전보다 더 작은 수가 등장했을 때 위치를 갱신하는 것은 익숙할 것이다. 여기서는..

[백준 12738번] 가장 긴 증가하는 부분 수열 3 (python, bisect)

www.acmicpc.net/problem/12738 12738번: 가장 긴 증가하는 부분 수열 3 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 1과 다른 점은 배열 원소의 최소값이 -10^9이기 때문이다. 따라서 q의 처음 최소값을 그 수보다 작은 수로 하면 된다 import sys from bisect import bisect_left n=int(sys.stdin.readline()) arr=list(map(int,sys.stdin.readline().split())) #마지막 길이 출력 때 1을 빼준다 q=[-1000..

[Leetcode] two sum (python, javascript)

합한 수가 target이면 현재 수 x와 target-x의 위치를 찾으면 된다 각 숫자의 위치를 저장해가면서 이미 지나간 위치에서 target-x가 있다면 [현재위치, dict[target-x]] 를 리턴하면 된다. 1. python class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dict={} for i,x in enumerate(nums): if target-x in dict: return [dict[target-x],i] dict[x]=i 2. javascript /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var t..

[11053번] 가장 긴 증가하는 부분 수열 (python, bisect)

www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 부분 수열의 길이만 구하는 문제고 실제 어떤 원소가 부분 수열을 이루고 있는지나 해당 원소의 인덱스를 구하는 문제가 아니라서 쉽게 구할 수 있다. 심지어 이 문제는 O(N*2)을 해도 풀리기 때문에 (1초= 10^9를 넘어가지 않으면 된다) 이중 반복문을 돌며 해당 원소 위치에서 가장 긴 부분 수열의 길이를 구하는 방식으로 구해도 되..

[면접 일상] 마이리얼트립 프론트엔드 기술면접 후기

면접 본 곳 중에 제일 좋은 기억남았고 면접인데도 굉장히 재밌게 했다 1차 사전과제 코드리뷰 30분 2차 기술면접 40-50분? 정도로 진행됐는데 2시간 면접은 처음이라 덜덜떨면서 갔는데 일단 면접관분들이 굉장히 친절하게 해주셨다 1차 사전과제 리뷰는 내가 코드의 미흡한 점들을 알기에 개선할 수 있는 방법들을 공부해갔었다. (기술면접 경험이 적다면 꼭 이 부분은 대부분 물어보니 준비해가야된다. 본인의 프로젝트를 설명할 것 같을 때에도 개선점들을 꼭 찾아가야된다. 아니면 개선했던 경험을 준비해야된다. 없을 거라고 생각하는 면접관분들이 없었다. IT중에서도 개발직군을 뽑는 곳이면 잘 물어보는데 처음 면접봤을 때 생각안해갔기 때문에 어버버했었다 ... ㅠㅠ ) 그렇게 준비했던 것을 다 말했고 들으시면서 많이 ..

[JS] 스코프 Scope

스코프는 변수에 접근할 수 있는 범위 이다. 자바스크립트는 기본적으로 ES5까지는 함수 단위 스코프를 지원했고 ES6에 와서 블록 단위 스코프를 지원한다. var가 함수 단위의 스코프를 지원하고 let, const가 블록 단위 스코프를 지원한다. var, 함수 단위 스코프 if 나 for 문 같은 블록의 변수는 공유되나 함수 스코프 내의 변수는 공유하지 않는다. var a=1; // 전역 스코프 // if, for와 같은 블록은 같은 스코프라고 인식해서 블록을 지나도 해당 변수에 // 접근할 수 있다. if(true){ var a=2; } // 함수 내에서 선언된 변수는 함수 스코프를 지원하므로 함수 밖에서는 해당 변수에 // 접근할 수 없다. function test(){ var b=3; console..

[JS] Hoisting 호이스팅

아직 선언하지 않은 변수를 호출하더라도 undefined가 출력된다면? 이것이 바로 호이스팅 console.log(a); // undefined; console.log(test);//undefined; console.log(test2); // function test2 () {...} 저 밑에 선언한 함수가 출력된다 오잉 var a='호이스팅'; // 호이스팅 되는 var 변수 //함수 표현식은 호이스팅 되지 않지 하지만 var test 변수는 호이스팅 된다. var test=function(){ console.log('test'); } //호이스팅이 되는 함수 선언문..!! function test2(){ console.log('test2'); } 분명 변수를 선언하기 전에 호출 먼저 했는데도 에러가 ..

[Redux] Redux 개념과 3가지 규칙

가장 많이 사용하는 리액트 상태관리 라이브러리이다 컴포넌트 상태 업데이트 로직을 별도의 파일로 분리하여 효율적으로 관리할 수 있다 Redux 구성요소 1) 액션 상태에 변화가 필요할 경우 액션이 발생한다. 객체 형태로 전달하며 type필드는 반드시 필요하다 밑의 payload라고 써진 부분은 원하는 데이터 아무거나 넣어줘도 되고 필드명도 원하는대로 지정해서 쓰면 된다. {type:'INCREASE', payload} {type:'INCREASE', data:2} 2) 액션생성함수 액션 객체를 만들어주는 함수이다 function increateNumber(data){ // 액션 객체를 만들어서 반환해주는 액션 생성 함수 return{ type:'INCREASE', data }; } 변화를 일으킬 때마다 액..