코딩 테스트/프로그래머스 코딩 테스트 연습

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이번 문제는 큐를 이어붙여 투포인터 알고리즘을 이용해 풀었다. 시작포인터와 끝 포인터는 각각 0과 첫번째 큐의 끝으로 설정해 두었다. 그 이유는 한개의 큐의 합이 전체 큐의 합의 절반이 되는 것을 감지해야하기 때문에 첫번째 큐의 합을 기준으로 크다면 lp에 해당하는 수를 빼고, 작다면 rp에 해당하는 수를 더해주면서 문제를 풀었다. 코드 const solution = (qu..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 주어진 2차원 배열(정사각형 모양)을 4등분씩 나눈다음 나누어진 영역의 숫자들이 모두 같은 수라면 그 수로 압축하고, 아니라면 계속 나누고 압축하는 것을 반복해준다. 마지막으로 사각형의 크키가 1이 되면 동작을 멈춘다. 이 문제는 재귀를 통해 풀었다. 계산을 이어가면 갈수록 계산할 대상이 작아지고 각 영역을 나눠 계산하기 때문에 재귀가 맞다고 생각했다. 쿼드압축에 관한 글 코..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제는 인수의 길이를 확인하고 시간 복잡도를 생각해서 이중 for문을 사용하지 않고 풀어야하는 문제라 생각했다.나는 투포인터 알고리즘을 이용해 문제를 풀기로 했다. 고려해야 하는 상황은 3가지 이다.1. 부분 수열의 합이 k값보다 작고 오른쪽 포인트가 수열의 끝 인덱스보다 작을 때2. 부분 수열의 합이 k값과 같고 기존 수열의 범위와 비교해서 지금의 범위가 작을 때3. ..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제에서 주의할 점은 시간복잡도로 인한 시간초과 에러가 발생하면 안된다는 점이다. 입력되는 order의 길이가 최대 1,000,000이기 때문에, O(N)의 시간 복잡도를 갖는 메서드 혹은 방법의 사용은 지양해야한다. (shift나 이중 for문, slice 같이 배열 전체를 확인하는 방식)(링크) 나는 이 문제를 stack을 이용해 풀어 봤다. 예외 처리하는데 어려움을..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 for문으로 해당하는 숫자를 찾을때 까지 반복한다면 시간초과 에러가 발생한다. 2진수로 바꿔준다음 생각하는 것이 좋다. 짝수인 경우 2진수에서 항상 0으로 끝나기에 끝에 1이 오는 숫자, 즉, 기존 숫자보다 1만큼 더 큰 숫자가 답이다 홀수는 2진수로 변환 후 비교해야하는데, 1이 한개 늘어나면 앞에 있는 비트의 범위가 커질 수 있기에 처음에 0을 붙여주고 '01' 패턴이 제..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 길이가 1일 때는 1개의 경우, 2일 때는 2, 3일 때는 3, 4일 때는 5, 5일 때는 8 이 문제는 피보나치 수열을 이용한 문제로써, DP를 이용해 문제를 풀었다. 코드 function solution(n) { let arr = Array(n+1).fill(0); arr[0] = 1; arr[1] = 1; for(let i=2; i
58청춘
'코딩 테스트/프로그래머스 코딩 테스트 연습' 카테고리의 글 목록 (15 Page)