개발/알고리즘

    [코딩테스트] 프로그래머스 문제 모음

    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) : 상수의 계산, 변수 선언, 인덱스, 객체에서 키로..

    [코딩테스트] 최대공약수와 최소공배수

    1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 다른 사람풀이 본 후 function solution(n, m) { var answer = []; for (let i = 1; i

    [코딩테스트] 프로그래머스 문제 모음

    1. 문자열 내림차순으로 배치하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { var answer = ""; answer = s.split("").sort().reverse().join(""); return answer; } 2. 문자열 다루기 기본 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { var answer = tr..

    [프로그래머스 level2] Jaden Case문자열 만들기

    1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 (1) 첫번째 풀이 function solution(s) { var answer = ""; answer = s .toLowerCase() .split(" ") .map((v) => v.replace(/^./, v[0].toUpperCase())) .join(" "); return answer; } 런타임 에러 : replace가 런타임 에러를 일으킨거 같다. (2) 두번째 풀이 function solution(s) { var answer = ""; answer = s .toLowerCas..