-
[프로그래머스 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
-
[백준 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
-
[백준 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
-
문자열을 숫자로 (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 4] 4179 불! - Java
문제링크 : https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 접근 과정 : https://rays-space.tistory.com/69 [백준 Gold 4] 5427 불 - Java 문제링크 : https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 rays-sp..
2022.01.12
-
[백준 Gold 1] 10868 최솟값 - Java
문제링크 : https://www.acmicpc.net/problem/10868 10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 www.acmicpc.net 접근 과정 : 특정 범위가 주어졌을 때, 해당 범위 내의 최솟값을 찾는 문제다. 숫자와 질의 입력이 최대 100,000까지 주어지기 때문에, 일반적인 탐색으로는 힘들것이라고 생각했다. 세그먼트 트리를 사용해 보았다. 내가 이해한 세그먼트 트리는, 특정 범위 내에서의 값(최대값 혹은 최솟값 등)을 노드에 표시하는 것이다. 노드 1은 1~N까지의 값 중..
2022.01.10