Algorithm85 [Java] 백준 9019 - DSLR https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 최초 코드 import java.util.*; import java.io.*; class Main { private static int idx = 0; private static int[] minArr; private static String[] cmds; public static void main(String[] args) throws IOException { BufferedRead.. 2024. 1. 5. [Java] 백준 1162 - 도로포장 https://www.acmicpc.net/problem/1162 1162번: 도로포장 첫 줄에는 도시의 수 N(1 ≤ N ≤ 10,000)과 도로의 수 M(1 ≤ M ≤ 50,000)과 포장할 도로의 수 K(1 ≤ K ≤ 20)가 공백으로 구분되어 주어진다. M개의 줄에 대해 도로가 연결하는 두 도시와 도로를 통과하 www.acmicpc.net 시나리오 - 1번 노드에서 N번 노드로 가는 최소 비용을 구하되 K개 이하의 간선에 비용을 0으로 하는 경우의 수도 존재하므로 노드별 minCost를 담는 배열을 2차원으로 만들어 minCost[노드 번호][도로 포장 개수] 꼴로 저장한다. - 노드는 최대 10,000 간선은 최대 50,000이 주어지므로 인접리스트를 생성한다. - cost는 최대 1,000,0.. 2024. 1. 3. [Java] 프로그래머스 - 유사 칸토어 비트열 https://school.programmers.co.kr/learn/courses/30/lessons/148652 시나리오 1. n이 아무리 커져도 1 1 0 1 1 꼴은 반복된다. n=1 11011 n=2 11011 11011 00000 11011 11011 n=3 11011 11011 00000 11011 11011 11011 11011 00000 11011 11011 00000 00000 00000 00000 00000 11011 11011 00000 11011 11011 11011 11011 00000 11011 11011 ... 2. 위 규칙에 따라 비트열을 다섯등분 하고 등분한 덩어리를 또 다시 다섯등분하는 과정을 반복하는 재귀함수를 만든다. 3. 단, n이 몇이든 중간 덩어리는 무조건 0이.. 2024. 1. 2. [Java] 프로그래머스 - 시소 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2023.11.06 - [분류 전체보기] - [Java] 프로그래머스 - N개의 최소공배수 [Java] 프로그래머스 - N개의 최소공배수 내 코드 import java.util.*; class Solution { public int solution(int[] arr) { Arrays.sort(arr); int max = arr[arr.length-1]; int gcd=1; while(!isCop.. 2023. 12. 28. [Java] 프로그래머스 - 리코쳇 로봇 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최종 코드 import java.util.*; class Solution { private int[] dy = {1,0,-1,0}; private int[] dx = {0,1,0,-1}; private int maxY; private int maxX; private int answer = Integer.MAX_VALUE; private int[] rPoint; private boolean[][].. 2023. 12. 28. 백준 10799-쇠막대기 [Java] https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 초기 코드(시간 초과) import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { int answer = 0; Stack stick = new Stack(); Stack laser = new Stack(); BufferedReader br = new BufferedRea.. 2023. 12. 22. DFS 시간 복잡도 지금까지는 DFS의 시간복잡도를 따로 계산하지 않고 사용해왔는데 프로그래머스 문제를 풀다가 DFS알고리즘이 생각보다 시간복잡도가 낮다는 것을 깨달았고 이를 계기로 한번쯤은 정리할 필요성을 느껴 포스팅한다. DFS알고리즘은 일반적으로 가상의 n진트리를 만들어 재귀함수로 구현한다. https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제의 경우 한번 광물을 캘 때 세개의 곡괭이 중 하나를 선택할 수 있다. 세 곡괭이는 최대 5개씩 주어지며 한번의.. 2023. 12. 21. [Java]프로그래머스 - 과제 진행하기 https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시나리오 1. 시작시간을 기준으로 내림차순 정렬 2. progress, pause스택을 생성한 뒤 정렬된 homework배열을 progress에 모두 삽입 3-1. progress.size() > 1일 때까지 순회하며 progress를 pop하고 pop한 과제의 시작시간 + 남은시간과 peek()의 시작시간을 비교, 전자가 클 경우 잠시 중단하고 다음 과제를 해야하기 때문에 pop한 과제의 남은.. 2023. 12. 20. [Java] 프로그래머스 - 양과 늑대 https://school.programmers.co.kr/learn/courses/30/lessons/92343 최초 코드 import java.util.*; class Solution { private int[][] adj; private int maxLambs; public int solution(int[] info, int[][] edges) { adj = new int[info.length][info.length]; //1. adj생성 (1:양, 2:늑대) for(int[] edge : edges){ int n1 = edge[0]; int n2 = edge[1]; adj[n1][n2]=info[n2]+1; adj[n2][n1]=info[n1]+1; } bfs(); return maxLambs; .. 2023. 12. 16. 이전 1 2 3 4 5 ··· 10 다음