[코딩테스트] 프로그래머스 문제
·
개발/알고리즘
1. 최소직사각형 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(sizes) { sizes = sizes.map((el) => el.sort((a, b) => a - b)); len1 = sizes.sort((a, b) => b[0] - a[0])[0][0]; len2 = sizes.sort((a, b) => b[1] - a[1])[0][1]; return len1 * len2; } 2. 영어 끝말잇기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..
[BigO] 객체와 배열
·
개발/알고리즘
1. 객체 빠른접근, 빠른제거에 좋다 정렬되어있지는 않지만 다른건 매우 빨드ㅏ. (1) Insertion(추가) : O(1) (2) Removal(제거) : O(1) (3) Searching(탐색) : O(N) (4) Access(접근) : O(1) 객체의 입력,제거,접근은 다 상수시간이다. 탐색은 n의 시간복잡도를 가진다. 2. 객체 메서드들 (1) Object.keys : O(N) (2) Object.values : O(N) (3) Object.entries : O(N) (4) hasOwnProperty : O(1) 3. 배열 객체와의 가장 큰 차이는 정렬을 할 수 있다는 것이다. (1) Insertion(추가) : It depends(상황에 따라) (2) Removal(제거) : It depends..
[코딩테스트] 프로그래머스 문제 모음
·
개발/알고리즘
1. 같은 숫자는 싫어 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr (1) 1번 풀이 function solution(arr) { for (let i = 0; i < arr.length; i++) { if (arr[i] == arr[i + 1]) { arr.splice(i, 1); i--; } } return arr; } 효율성 테스트 시간초과 splice로 계속 접근해서 시간이 더 걸린것같다. (2) 2번 풀이 function solution(arr) { let answer = []; for (let i = 0; i < arr.length; i++) ..
[코딩테스트] 올바른 괄호
·
개발/알고리즘
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 1번풀이 function solution(s) { var answer = true; s = s.split(""); while (true) { const idx1 = s.indexOf("("); const idx2 = s.indexOf(")"); if (idx2 < idx1 || idx1 == -1 || idx2 == -1) { answer = false; break; } s.splice(idx2, 1); s.splice(idx1, 1); if (s.join("") == "") { break; } } re..
[BigO] BigO 표기법
·
개발/알고리즘
1. BigO표기법이란? 간단하게는 대략적으로 숫자를세는 것의 공식적인 표현이다. 다시말하면 입력된 내용이 늘어날 수록 알고리즘에 실행시간이 어떻게 변하는지 설명하는 공식적인 방식이다. BigO표기법으로 함수의 입력값이 늘어나는것과 함수 실행시간이 변하는 관계를 숫자로 나타내고 이를 시각화 할수 있다. N이 커질수록 컴퓨터가 f(n) 상수 곱하기 f(n) 보다 간단한 연산을 덜 해야한다면 그 알고리즘을 O(f(n))이라고 표현한다. 2. BigO 표기법의 필요성 모든 코드는 좋은 코드와 안좋은 코드로 분류할 수 없다. 그래서 우리는 이 애매한 표현들 대신에 숫자로 코드의 성능을 표기 할수 있다. 그것이 바로 BigO표기법이다. 3. 시간복잡도 O(1) : 상수의 계산, 변수 선언, 인덱스, 객체에서 키로..
[React] 게시판 만들기
·
개발/React
GitHub - TeTedo/react_project Contribute to TeTedo/react_project development by creating an account on GitHub. github.com 리액트로 백앤드를 쓰지 않고 useState함수를 사용하여 게시판을 만들어봤다. 1. 로그인 기능 user라는 배열안에 배열 형태로 정보들을 넣어놨고 회원가입을 할때에 useState 로 user의 배열에 새로운 user값들을 추가해줬다. 로그인을 했을때 login = true로 설정하고 loginUser에도 해당 로그인한 아이디를 넣어줬다. 2. 로그아웃 기능 loginUser로 로그인을 했을때 현재 로그인되어있는 아이디를 받아온다. loginUser를 빈값으로 만들어주고 login을 f..