스택

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 풀이 방법이번에 다시 풀어본 문제는 시간 복잡도 최적화가 중요한 문제이다. const solution = (numbers) => { let answer = new Array(numbers.length).fill(-1); for(let i = 0; i numbers[i]){ answer[i] = numbers[j]; ..
문제 설명 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/42584# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 stack을 이용해 풀이를 진행했다. 문제는 각 가격이 언제까지 떨어지지 않는가를 측정하는 문제인데, 떨어지는 기준은 해당 가격보다 아래로 내려가는 것이다. 스택에 떨어지지 않는 가격의 인덱스를 담고, 이후에 떨어지게 되면 stack의 마지막 요소부터 빼줘서 기간을 계산한다. 위의 과정을 거치고도 stack에 남아있는 수들은 한번도 떨어지지 않은 가격이므로 가격 배열의..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 원래 이 문제를 이중 for문을 이용해 풀어봤다.... 하지만 시간초과가 뜨면서 실패했다..... 그래서 질문탭에서 스택으로 풀어보라는 글을 보고 스택으로 문제를 풀어봤다. 그런데도 설계를 잘 못하겠어서 구글링을 통해 다른 분이 작성한 코드를 참고했다. 코드 const solution = (numbers) => { let answer = Array.from({lengt..
문제 설명 문제 풀이 방법 이 문제는 스택을 사용하는 문제이지만 괄호들이 좌로 한칸씩 회전하며 검증을 해야하기에 기존에 stack 배열에 추가 제거 하는 방식으로는 시간초과가 발생할거 같아 다른 방식을 참고했다. 기존에 내가 사용하던 방식은 돌아가며 stack배열에 하나씩 추가하며 괄호가 짝이 맞으면 pop()메서드를 이용해 stack에서 제거하는 방식이지만, 이번에는 맨 앞요소를 시작으로 짝을 비교하며 짝이 맞다면 stack에서 제거, 맞지 않는다면 stack에 추가하는 방식으로 했다. 이때 다른점은 stack에서 비교해 수정하는 것이 아니라 주어진 배열 혹은 문자열에서 stack에 있는 요소와 비교하는 방식이다. 코드 function solution(s) { let cnt = 0; for(let i=..
문제 설명 문제 풀이 방법 이 문제는 stack을 사용하며 괄호가 올바른지 확인하며 풀이했다. 또한 재귀 방식을 이용해 풀었다. 우선 주어지는 괄호 문자열의 (와 )의 갯수가 같아질 때를 찾아 u와 v로 나눈다. 그리고 나누어진 문자열이 올바른 괄호 문자열인지 확인하는 함수를 작성한다. 이 함수는 stack을 이용해 괄호 문자열이 제대로된 쌍을 갖는지 확인한 뒤 불리언 값을 반환한다. check 함수를 이용해 올바른지 여부를 확인 후 올바르 않다면 문제의 조건을 보며 코드를 작성한다. 코드 function solution(p) { // ()문자열을 올바른 괄호 문자열로 변환해주는 함수 // 빈 문자열이 들어오면 빈 문자열을 반환, // 올바른 괄호문자열이 들어오면 그대로 반환, // 올바르지 않은 괄호 ..
58청춘
'스택' 태그의 글 목록