[백준 Gold 3] 1516 게임 개발 - Java 문제링크 : https://www.acmicpc.net/problem/status/1516 1516번 맞힌 사람 - 1 페이지 모든 언어C++JavaPythonCC++17Java 8Python 3C11PyPy3C99C++98C++11C++14Java 8 (OpenJDK)Java 11C++20Python 2PyPy2RubyKotlin (JVM)Kotlin (Native)CythonSwiftTextC#node.jsGoGo (gccgo)Java 15DD (LDC)F# (Mono)PHPRust 2015Rust 2018PascalScalaLuaPerlRakuRuby 1.8R www.acmicpc.net 접근 과정 : 어떤 건물을 짓기 전에, 지어야 하는 건물이 있다면 그 건물들을 모두 먼저 지어야 한다. 건물을 .. 2022.01.27 [백준 Gold 4] 4485 녹색 옷 입은 애가 젤다지? - Java 문제링크 : https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 접근 과정 : 링크가 상하좌우로 움직인다. -> DP불가 and DFS로 하면 힘듬(매 경우마다 visit체크 필요 및 시간초과) BFS 와 유사한 방법으로 접근 좌표와 해당 좌표까지 잃은 소지금을 PriorityQueue에 집어넣어서 잃은 소지금이 적은 순으로 출력. visit[][]를 통해 각 좌표에서의 최소 소지금을 표시. PriorityQueue를 통해 하나씩.. 2022.01.26 JVM (Java Virtual Machine ) 이란? JVM이란? JVM은 Java Virtual Machine 의 약자로 자바 가상 머신입니다. Java로 작성된 애플리케이션은 JVM에서만 실행됩니다. JVM은 Java 바이트코드를 읽고 이를 OS에 맞게 해석하여 실행할 수 있도록 하는 역할을 수행합니다. 이렇게 JVM이 OS과 Java 애프릴케이션 사이에서 역할을 수행하기 때문에 Java 애플리케이션은 OS에 독립적으로 실행될 수 있습니다. Java 코드의 변경없이, 다양한 OS에서 실행할 수 있습니다. 또한 Garbage Collection을 이용해서, 메모리를 효율적으로 관리해 줍니다. JVM의 역할 Java 바이트 코드를 OS에 맞게 해석하여 실행 Garbage Collection을 이용해 메모리를 효율적으로 관리 Java 바이트 코드 Java 바.. 2022.01.17 문자열을 숫자로 (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 문자열을 숫자로 (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 .. 댓글 0 2022.01.17 [백준 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.. 댓글 0 2021.12.25 [백준 Gold 2] 14657 준오는 최종인재야!! - Java 문제링크 : https://www.acmicpc.net/problem/14657 14657번: 준오는 최종인재야!! 첫째 줄에 문제의 수 N, 하루 풀이 시간 T가 주어진다. (2 ≤ N ≤ 50,000, 1 ≤ T ≤ 100,000) 이후 둘째 줄 부터 N-1개의 줄에 걸쳐 각 줄마다 A, B, C가 주어진다. (1 ≤ A, B ≤ N, 1 ≤ C ≤ 1,000) A와 B는 www.acmicpc.net 접근 과정 : 먼저 가장 많은 문제를 푸는 경우(트리의 지름)을 찾아야 한다.!! + 가장 많은 문제를 푸는 경우가 여러개 존재한다면, 가장 시간이 짧은 것을 찾아야 한다.!! 즉, 가장 긴 트리의 지름 중에서 가장 가중치가 적은 경우를 찾고 이를 기준으로 다시 한번 조회해서, 정확한 가중치를 찾아서 반.. 댓글 0 2021.12.21 [백준 Silver 3] 1748 수 이어 쓰기 1 - Java 문제링크 : https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 접근 과정 : 완전탐색으로 수를 N까지 탐색하면서, 그 자릿수를 모두 더해주었다. ++ N까지 모든 수를 탐색하지 않아도, 수의 범위로 자릿수의 총합을 구할 수 있다. 1~9 / 10~99 / 100~999 / .... 등 N과 각 자릿수의 범위 관계로 탐색연산의 횟수를 줄일 수 있다. 소스 코드 및 결과 : package BOJ; /** 수 이어 쓰기 1 완전탐색 */ import java.io.*; public class BOJ1748 { public static void main(String[] ar.. 댓글 0 2022.01.16 [백준 Silver 2] 10451 순열 사이클 - Java 문제링크 : https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 접근 과정 : 분리 집합이 바로 떠올랐기 때문에, 분리집합으로 접근했다. 순열의 크기만큼 집합 배열을 선언한다. 순열의 인덱스가 해당 원소를 가리키기 때문에, 인덱스와 원소를 합친다(union). 모든 순열의 순회한 뒤에, 집합 배열의 값이 0인 원소를 카운트 한다. 소스 코드 및 결과 : package BOJ;.. 댓글 0 2022.01.14 [프로그래머스 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) .. 댓글 4 2021.04.13 이전다음