목록알고리즘 (272)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 방법N을 가지고 최대값을 작게 만드는것이 누적 피로도를 작게 할 수 있는 방법이다.그래서 우선순위 큐를 통해 pop하여 최대값을 갖는 작업을 1시간씩 작업하면 된다. 전체 코드import java.util.*;class Solution { public long solution(int n, int[] works) { long answer = 0; PriorityQue..
https://school.programmers.co.kr/learn/courses/30/lessons/42628# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 방법최대힙과 최소힙 두개의 힙을 사용합니다.삽입 연산시 두 힙에 모두 삽입합니다.최대/최소값 삭제 연산시 해당 힙에서 삭제를합니다.그럼 해당 힙이 아닌 다른 힙에서의 데이터 불일치는 어떻게 해결하나?Map을 통해 값의 삽입, 삭제 기록을 남깁니다. 즉, 남은 값의 개수를 Map의 Value로 사용합니다.힙에서 삭제 연산시 Map에서 남은 값이 존재하는지 확인 후에 존재하면 삭제연산을 정상적으로..

https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 위의 피라미드는 다음과 같은 배열로 들어온다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 아래의 층부터 위로 채워나갈 예정이다. 2 7 4 4가 존재하는 층 시작한다. 2 는 다음과 같은 선택지가 있다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 4 와 5중에 더 큰 수를 2에 더하면 된다. 이때 2에 5를 더해주면 된다. 다음은 7에 대해 이야기해보자. 7에서 선..
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 장르별 총 재생 횟수 Map을 이용해 장르별 총 재생 횟수를 기록 -> genresCnt 장르별 총 재생 횟수를 기록할때, 장르별 노래 Map에 노래 저장 -> genresSong 장르별 총 재생 횟수 Map을 재생 횟수로 정렬 -> List genre genre를 순차적으로 탐색하며 genresSong에서 노래 목록을 조건에 맞춰 정렬 -> songs songs에서 노래를 두개 꺼내 ..
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 Lv.3 단계라 다들 BFS는 잘 이해하고 있을 것이다. BFS로 풀었다. 핵심은 문자 하나를 바꿔서 탐색이 가능한 word라 하더라도 최소가 되는 비용으로 탐색이 가능할때 큐에 삽입하는 것이다. 왜냐 탐색 비용이 최소가 될 수 없는데 탐색하는 것은 최소 값을 구하는 문제에서 의미없는 탐색이기 때문이다. 전체 코드 import java.util.*; class Solution { cla..
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 프로그래머스 lv.3 단계 문제라 다들 DFS는 잘 알고 있을거라... 설명은 생략하고 간단히 처음 방문하는 노드라면 DFS를 통해 쭉 연결된 모든 노드를 방문하고 answer + 1을 해주면 된다. 전체 코드 import java.util.*; class Solution { public void dfs(int[][] computers, boolean visit[], int idx) {..

https://school.programmers.co.kr/learn/courses/30/lessons/12902#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 n이 홀수일때는 만들 수 없다. 0가지이다. n이 2일때 위와 같이 3개가 존재한다. n이 4일때 n이 2인 타일 모양에다가 또 n이 2일때 타일들을 붙여 n이 4인 타일을 완성할 수 있다. 여기에 특수한 모양의 2가지가 더 추가된다. 여기서 n이 4일때 answer를 수식으로 구하면 f(4) = f(2) * 3 + 2가 된다. f(4)에서 길이 2를 뺀 f(2)에서 길이 2짜..
https://school.programmers.co.kr/learn/courses/30/lessons/181188# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 e를 기준으로 정렬을 합니다. 순차적으로 방문하며 다음 과정을 거칩니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 크거나 같다면 새로운 요격 미사일이 필요합니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 작다면 앞서 요격한 미사일(현재 요격한 미사일) 때 사용한 요격 미사일로 막을 수 있습니다. 전체 코드 #include #include #include using na..