난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. [프로세스 우선순위, 프로세스 인덱스] 배열을 주어진 순서대로 큐에 삽입한다. 2-1. 꺼낸 프로세스의 우선순위가 가장 높지 않은 경우 꺼낸 프로세스를 큐에 다시 삽입한다. 2-2. 꺼낸 프로세스의 우선순위가 가장 높고, location(몇 번째로 실행되는지 알고 싶은 프로세스의 위치)에 해당하는 프로세스라면 answer을 하나 증가시키고 반복문을 종료하고 ..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 각 기능의 진도가 100%가 되기까지 며칠이 걸리는지를 배열에 저장한다. 2. 1.의 배열에서 시작 원소를 인덱스를 저장해 놓고, 배열을 순회하며 시작 원소보다 큰 원소가 나오면 해당 원소의 인덱스와 시작 원소의 인덱스 차를 구하여 정답 배열에 넣고, 시작 원소의 인덱스와 시작 원소 값을 업데이트한다. 코드 function solution(progresses..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 각 집합을 배열로 split 한다. 2. 1.의 결과인 집합 배열들을 배열의 길이를 기준으로 오름차순 정렬한다. 3. 각 배열의 원소들을 정답 Set에 입력한다. 코드 function solution(s) { const answer = new Set(); // 각 집합을 배열로 분리 s = s.substring(1, s.length - 1); const sp..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 참고로 문제에서 도시 이름은 대소문자를 구분하지 않는다고 했기 때문에 모든 도시 이름을 소문자 또는 대문자로 바꿔준 후 진행한다. 2. 캐시에 들어가 있는 도시 이름을 나타내는 cacheMemory 배열과 도시 이름이 언제 캐시에 들어갔는지 나타내는 cacheStatus 배열을 선언한다. 3. miss에는 두 종류가 있다. 캐시가 꽉 차지 않아서 발생하는 경..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 각 의상 종류가 몇 개인지 해시맵에 저장한다. 2. 해시맵의 value들을 배열에 저장한다. 이때 배열의 길이가 의상 종류의 개수를 뜻하고, 각 원소는 해당하는 의상 종류인 옷을 몇 개 가지고 있는지를 뜻한다. 3. 비트 플래그를 사용한다. 예시를 들자면 2.의 결과로 [2, 1, 3]이라는 결과가 나왔다고 해보자. 모자가 2개, 상의가 1개, 하의가 3개인..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 주어진 citations 배열을 정렬한다. 2. i번 이상 인용된 논문이 몇 개인지 확인해야 한다. i번 이상 인용된 논문이 몇 번째 인덱스부터인지 확인하기 위해 findIndex 함수를 사용한다. (citations 배열의 길이 - findIndex를 통해 얻은 인덱스)가 i번 이상 인용된 논문의 개수이다. i번 이상 인용된 논문의 개수가 i개 이상이라면 ..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. want 배열과 number 배열로 원하는 제품의 수량이 몇 개인지에 대한 객체를 생성한다. 이 객체를 원본이라 하자. 2. 객체의 원본을 깊은 복사한 객체를 생성한다. 3. discount 배열에서 연속된 10개의 항목을 순회하며 항목이 객체의 키 값으로 존재하는지 확인한다. 3-1. 하나의 항목이라도 객체의 키 값으로 존재하지 않으면 원하는 제품을 모두..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 빨간색 칸이 left에 해당하는 칸이고 파란색 칸이 right에 해당하는 칸이다. 첫 번째 for문에서는 left가 위치한 행에 있는 원소 중 left 위치의 열부터 행의 끝까지 push 한다. 두 번째 for문에서는 행 안에 있는 모든 원소를 push 한다. 세 번째 for문에서는 right가 위치한 행의 첫 원소부터 right 위치의 열까지 push 한다. 위..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 모든 종류의 여는 괄호는 stack에 push한다. 2. 닫는 괄호가 나오면 stack의 맨 윗 원소의 괄호 종류와 일치하는지 확인한다. 종류가 일치하지 않으면 올바른 괄호 문자열이 아니기 때문에 false를 반환하고, 종류가 일치하다면 stack 맨 윗 원소를 pop한다. 예를 들자면 stack에 "[({"가 있다. 이번 괄호가 ')'라면 틀린 괄호 문자열..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. len은 길이가 얼마인 연속 부분 수열인지를 나타낸다. len이 가질 수 있는 값의 범위는 1이상 elements 배열의 길이 이하이다. 2. 부분 수열 합을 위해 몇 번째 원소부터 더 할 것인지 정해야한다. 이 값을 i라 하자. 3. 2.의 i번째 원소부터 몇 개를 더할것인지 정해야한다. 1.에서 길이가 len이라고 정의했으므로 i번째 원소부터 i - l..