[프로그래머스 알고리즘 고득점 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; ..
[프로그래머스][MySQL] 조건에 부합하는 중고거래 댓글 조회하기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/164673 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr게시글 테이블 USED_GOODS_BOARD와 댓글 테이블 USED_GOODS_REPLY를 board_id 기준으로 INNER JOIN했다.문제에서 2022년 10월에 작성된 게시글의 댓글을 조회해야 하므로, 게시글 작성일 b.created_date에서 yyyy-mm 부분만 잘라 "2022-10"과 비교했다.댓글 작성일은 날짜까지만 출력해야 하므로 substr(r.created_date, 1, 10)을 사용해 yyyy-mm-dd 형태로 잘라 출력했다.마..