[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 타겟 넘버
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 타겟 넘버 풀이이 문제는 각 숫자 앞에 + 또는 -를 붙여서 target 값을 만들 수 있는 경우의 수를 구하는 문제다.각 숫자마다 선택지는 두 가지다.현재 숫자를 더한다.현재 숫자를 뺀다.따라서 DFS를 사용해 모든 경우를 탐색한다.index는 현재 몇 번째 숫자를 보고 있는지 나타내고, sum은 지금까지 계산한 합을 의미한다.모든 숫자를 다 사용했을 때 sum == target이면 정답 개수를 1 증가시킨다.즉, 이 문제는 + / - 선택..
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 퍼즐 조각 채우기
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 뭔가 동작이 필요할 때마다 메서드를 분리했더니 엉망이 되어버린 코드...문제가 생겼는데 혼자 고칠 수가 없어서 지피티의 많은 도움을 받았다...무작정 메서드 분리하는 것이 오히려 마이너스임을 깨달았다...나를 조금 덜 믿고 메서드 별로 테스트하자... 정답 코드 1. table에서 블록을 찾는다.2. game_board에서 빈칸을 찾는다.3. BFS로 연결된 칸들을 Shape로 묶는다.4. Shape를 정규화해서 위치 차이를 없앤다. -> 정렬과 0,..
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 프로세스
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제의 핵심은 큐의 순서를 유지하면서도, 현재 프로세스보다 우선순위가 높은 프로세스가 남아 있는지 판단하는 것이다.처음에는 큐를 직접 순회하면서 더 높은 우선순위가 있는지 확인할 수도 있다. 하지만 이 문제에서는 우선순위가 1부터 9까지로 제한되어 있다. 따라서 각 우선순위의 남은 개수를 배열로 관리하면, 현재 프로세스가 실행 가능한지 더 간단하게 판단할 수 있다.각 프로세스는 우선순위와 원래 위치를 함께 가진 객체로 저장했다. 큐에서 프로세스의 위치..
[프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 이중우선순위큐
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제이름이 너무 힌트라 2개의 우선순위큐를 사용하는 방법을 생각했다.최댓값과 최솟값을 항상 관리해야 하는데하나의 우선순위큐로는 쉽지 않다.그래서 최대를 관리하는 우선순위큐와 최소를 관리하는 우선순위큐를 나눠서 관리한다.그러면 여기서 하나의 수열에서 최대와 최소를 관리해야 하는데 2개로 나눴기 때문에다른 하나의 우선순위큐에서 삭제 혹은 추가는 다른 우선순위큐에서도 적용이 되어야 한다.추가는 둘 다 추가하면 된다.삭제는 바로 꺼내서 삭제할 수 없기 때문에..
[프로그래머스 알고리즘 고득점 Kit][정렬][Java] H-Index
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 같은 변수 h를 여러 곳에 사용하니까 문제를 이해하기 쉽지 않았다.내림차순해서 하나씩 보면6 5 3 1 01번째 논문을 보자 6번 이상 인용된 논문의 수는 1이다. -> h번이상 인용된 논문의 수는 h이상 이라는 문장을 만족하는 h는 1이다.2번째 논문을 보자 5번 이상 인용된 논문의 수는 2이다.-> h번이상 인용된 논문의 수는 h이상 이라는 문장을 만족하는 h는 2이다.3번째 논문을 보자 3번 이상 인용된 논문의 수는 3이다.-> h번이상 인용된 논..
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 올바른 괄호
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 닫힌 괄호가 들어왔을 때 stack 안에 열린 괄호가 있으면 열린 괄호를 꺼낸다. () 짝을 맞춰 소멸.-> 비어있을 때 닫힌 괄호? X스택을 쓰는 이유는 닫힌 괄호는 가장 나중에 열린 괄호와 짝이 맞아야한다.( -> (( -> (() -> (그래서 위로 쌓이는 자료구조를 선택한다. import java.util.*;class Solution { boolean solution(String s) { int len = s.length()..