[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 주식가격
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 스택에는 아직 가격이 떨어진 시점을 찾지 못한 인덱스를 저장한다.현재 가격이 스택 맨 위 인덱스의 가격보다 낮다면, 해당 주식은 현재 시점에 처음 가격이 떨어진 것이다.answer[lastIdx] = i - lastIdx; 가격이 떨어진 인덱스를 계속 제거하기 때문에 스택의 가격은 아래에서 위로 비감소 순서를 유지한다.전체 순회 후 스택에 남은 인덱스는 끝까지 가격이 떨어지지 않은 경우이므로 마지막 시점까지의 시간을 계산한다.answer[idx] = p..
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 다리를 지나는 트럭
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 핵심트럭은 1초에 1칸씩 이동 (지문엔 명시 안 되어 있고, 예시 표로 유추해야 함)트럭 1대가 다리를 완전히 통과하는 데 정확히 bridge_length초 소요다리 위 트럭들의 무게 합이 weight를 넘으면 안 됨 (대기 중인 트럭 무게는 무시)풀이 전략큐 2개로 관리: waitingQ(아직 다리에 안 오른 트럭), bridgeQ(현재 다리 위 트럭, {진입시각, 무게} 저장)time을 1씩 증가시키며 매초 두 단계를 순서대로 체크내리기: br..
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 모음사전
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 방법DFS로 A,E,I,O,U를 사전순으로 조합해가며 문자열 생성문자열이 하나 완성될 때마다 cnt++target과 일치하면 found = true로 표시하고 탐색 중단 class Solution { char[] alphabets = {'A', 'E', 'I', 'O', 'U'}; int cnt = 0; boolean found = false; public int solution(String word) { ..
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 전력망을 둘로 나누기
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 - 전력망을 둘로 나누기문제 핵심노드 n개, 간선(wires) n-1개 → 트리 구조트리에서 간선 하나를 제거하면 항상 정확히 2개의 컴포넌트로 나뉜다각 간선을 제거했다고 가정하고, 나뉜 두 그룹의 노드 개수 차이가 최소가 되는 경우를 찾는 문제풀이 전략인접 리스트 구성: wires를 이용해 양방향 그래프를 List[]로 만든다간선을 하나씩 제거해보며 BFSwires를 순회하면서 매번 간선 [u, v]를 "제거 대상"으로 정한다u에서 BFS..
[프로그래머스][MySQL] 특정 형질을 가지는 대장균 찾기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/301646 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr형질은 각 비트로 표현된다.1번 형질: 1 → 00012번 형질: 2 → 00103번 형질: 4 → 0100& 연산은 두 값에서 같은 위치의 비트가 모두 1일 때만 해당 비트를 남긴다. -> 0001 & 0001 = 0001 , 0001 & 1110 = 0000따라서 (genotype & 2) = 2이면 2번 형질을 가진 것이고, (genotype & 2) != 2이면 2번 형질이 없는 것이다.같은 방식으로 genotype & 1은 1번 형질, geno..
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 피로도
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr DFS와 백트래킹으로 가능한 모든 던전 탐험 순서를 확인한다.visited 배열로 방문 여부를 관리하고최소 피로도 조건을 만족하는가, 남은 피로도가 소모할 피로도보다 많은 가를 체크하고 탐험을 진행한다. 호출이 끝나면 방문 상태를 되돌린다.각 단계에서 탐험한 던전 수의 최댓값을 갱신한다.class Solution { int k; int[][] dungeons; int dungeonCount; boolean[] visited; ..