🧩Algorithm

https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. 제한사..
프로그래머스 개인정보 수집 유효기간 문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은..
풀이가 다들 가중치 2배로 하고 실수형 나오는거 막는거로 풀이하시길래.. double 풀이 공유합니다 public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static int N, M; static List[] adjs; public static void main(String[] args) throws IOException { st = new StringTokenizer(br.readL..
import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static int N; static Stack visit; static List[] adjs; static int[] type; static int[] nums; static int answer = 0; public static void main(String[] a..
맞은 풀이 import java.io.*; import java.util.*; import java.util.stream.Collectors; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static char[][] map = new char[12][6]; static int[] dr = {-1, 1, 0, 0}; static int[] dc = {0, 0, -1, 1}; pu..
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 틀렸던 이유 처음에 그리디하게 경로 탐색을 해서 틀렸다. (현재 위치에서 제일 가까운 점으로 이동 or 도착점까지 거리가 제일 짧아지는 방향으로 이동) 하지만 이 문제는 그리디하게 풀면 안되는 문제다! 1. 완전 탐색 (bfs) public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(Syst..
A가 B 앞에 나와야한다 같은 조건이 나오는 문제 풀이 1. adj, indegree 배열 정의 2. indegree가 0인걸 저장할 큐 정의 3. 큐 초기화 (indegree가 0인걸 넣어줌) 4. 큐에서 pop 된 원소의 adj indegree를 하나씩 빼준다. 이때 indegree가 0이 된다면 q에 add boj 2252 public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; pu..
import java.util.*; class Solution { static int[] arr; static int[] ends; static int[][] req; static int answer = Integer.MAX_VALUE; public int solution(int k, int n, int[][] reqs) { // 12:40 // 각 유형별로 멘토 적어도 한명 이상 // 시각 오름차순, 겹치지 않음 req = new int[reqs.length][3]; for(int i = 0; i < reqs.length; i++) { req[i] = reqs[i].clone(); } arr = new int[k]; Arrays.fill(arr, 1); dfs(0, k, k ,n); return ans..
문제 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 접두사, 접미사 문제는 트라이를 의심해볼 수 있다. 일반적인 풀이와 트라이로 둘 다 풀어보자 1. 일반적인 풀이 public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)..
dp[n][m] : n개의 수를 m개의 구간으로 나눴을 때 구간에 속한 수들의 최댓값 점화식을 세워보도록 하자 n개의 원소를 m개의 그룹으로 나눈다. n번째 원소가 포함이 안되는 경우 dp[n][m] = dp[n-1][m] n번째 원소가 포함되는 경우 dp[n][m] = max(dp[n-2][m-1] + (n번째 원소), dp[n-3][m-1] + (n-1 ~ n번째 원소 합), dp[n-4][m-1] + (n-2 ~ n번째 원소 합), .... , dp[1][m-1] + (3 ~ n번째 원소 합)) 다만 여기서 원소합 계산을 편하게 하기 위해 누적합을 이용한다! import java.io.*; import java.util.*; public class Main { static BufferedReader..
kkyu0718
'🧩Algorithm' 카테고리의 글 목록