-
[프로그래머스 Lv.4] 선입 선출 스케줄링 - JAVA
문제 링크 : programmers.co.kr/learn/courses/30/lessons/12920 코딩테스트 연습 - 선입 선출 스케줄링 처리해야 할 동일한 작업이 n 개가 있고, 이를 처리하기 위한 CPU가 있습니다. 이 CPU는 다음과 같은 특징이 있습니다. CPU에는 여러 개의 코어가 있고, 코어별로 한 작업을 처리하는 시간이 다릅니 programmers.co.kr 접근 과정 1) 우선순위 큐와 반복문을 활용한 풀이 우선순위 큐를 이용하여 core들을 순회시켰다. 반복문안에서 core들이 순서대로 작업을 1개씩 담당하며 처리했고 n은 차감되었다. n이 0이 되었을 때, 마지막 작업을 처리한 core의 인덱스를 출력하였다. => 정확성은 통과하였으나, 효율성에서 시간초과라는 결과를 보였다. 2) ..
2021.04.13
-
[백준 Silver 4] 11652 카드 - Java
문제링크 : https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 접근 과정 : 해쉬맵이나 배열을 사용하면 쉽게 풀 수 있다. 해쉬맵에 형태로 저장하면서 카드의 숫자를 세주고 가장 많은 개수의 카드를 갱신시켜주면 된다. 같은 개수일 경우에는, 카드의 숫자가 더 작은 것으로 갱신하고!! 소스 코드 및 결과 : package BOJ; /* 카드 */ import java.io.*; import java.util.*; public class BOJ1..
2021.12.25
-
[백준 Gold 4] 3584 가장 가까운 공통 조상 - Java
문제링크 : https://www.acmicpc.net/problem/3584 3584번: 가장 가까운 공통 조상 루트가 있는 트리(rooted tree)가 주어지고, 그 트리 상의 두 정점이 주어질 때 그들의 가장 가까운 공통 조상(Nearest Common Anscestor)은 다음과 같이 정의됩니다. 두 노드의 가장 가까운 공통 조상은, 두 www.acmicpc.net 접근 과정 : 부모 - 자식 관계가 주어지고 두 노드가 주어졌을 때, 그 두 노드의 가장 가까운 공통 조상을 찾으면 된다. 저장한 부모-자식 관계를 따라서 노드 A의 조상을 체크한다. DFS로 B의 조상을 탐색하면서 A의 조상체크가 되어있는 조상을 발견하면 리턴한다. 소스 코드 및 결과 : package BOJ; /* 가장 가까운 공..
2022.01.02
-
[백준 Silver 3] 15270 친구 팰린드롬 - Java
문제링크 : https://www.acmicpc.net/problem/15270 15270번: 친구 팰린드롬 초등학생인 재홍이는 이번 봄 학예회 때, 재홍이가 지휘를 맡고 반 친구들이 춤을 추기로 계획했다. 이 춤은 시작할 때 춤추는 친구들이 일렬로 쭉 서서 각자 막춤을 추다가, 가운데 있는 친구를 www.acmicpc.net 접근 과정 : 반 친구들은 1:1로 묶여져야 한다. 관계도의 조합을 만들어가고, 각 조합에 따라 친구의 사용 유무를 확인하여 가능한 최대수를 찾는다!! 최대한 세울 수 있는 친구 수가 N보다 작다면, 1명을 추가!! 소스 코드 및 결과 : package BOJ; import java.io.*; import java.util.*; /* 친구 팰린드롬 */ public class BO..
2021.12.16
-
문자열을 숫자로 (Integer) parseInt(String) VS valueOf(String)
문자열 -> 숫자 변환?? Java를 사용하다보면, 우리는 문자열을 숫자로 변환시켜야 하는 상황을 자주 마주합니다. 그럼 어떻게 하시나요? Java는 문자열->숫자 변환을 위해 2가지의 메소드를 제공하고 있습니다. 바로 Integer.valueOf 와 Integer.parseInt 입니다. String S = "123"; int A = Integer.parseInt(S); Integer B = Integer.valueOf(S); 코드에서 본 것처럼, 언뜻 같은 기능을 하는 2개의 메소드의 차이를 알아보려고 합니다. 이미 힌트를 보여준 것 같지만, 좀 더 자세히 알아보겠습니다. Integer.parseInt(String) Java API 정의 public static int parseInt(String ..
2022.01.17
-
[백준 Gold 5] 1446 지름길 - Java
문제 링크 : www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주 www.acmicpc.net 접근 과정 문제 유형은 다익스트라이지만, DP가 어울릴 것이라 생각하여 DP로 접근 DP[n] : 위치 n까지 이동한 최소 거리 HashMap ShortCut에 의 형식으로 지름길을 저장 Top-Down 과 Bottom-Up의 2가지 방식으로 DP(N)을 구하여 반환. 소스 코드 및 결과 Code 1 : Top-Down import java.io.*; import java.util.*;..
2021.04.13