Java10 [백준] 1347번 미로 만들기 (Java) 0. 출처 백준 1347번 문제입니다. 1. 문제 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍준이는 미로에서 모든 행과 열의 이동할 수 있는 칸을 걸어다녔다. 그러면서 자신의 움직임을 모두 노트에 쓰기로 했다. 홍준이는 미로의 지도를 자기 노트만을 이용해서 그리려고 한다. 입력으로 홍준이가 적은 내용을 나타내는 문자열이 주어진다. 각 문자 하나는 한 번의 움직임을 말한다. ‘F’는 앞으로 한 칸 움직인 것이고, ‘L'과 ’R'은 방향을 왼쪽 또는 오른쪽으로 전환한 것이다. 즉, 90도를 회전하면서, 위치는 그대로인 것이다. (1) 입력 첫째 줄에 홍준이가 .. Algorithm & Data Structure/코딩 테스트 문제풀이 2024. 4. 19. [백준] 1916번 최소비용 구하기 (Java) 0. 출처 백준 1916번 문제입니다. 1. 문제 N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다. (1) 입력 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스 비용은 0보다 크거나.. Algorithm & Data Structure/코딩 테스트 문제풀이 2024. 4. 18. [Java] 래퍼 클래스(Wrapper Class)란 1. 래퍼 클래스(Wrapper Class)란 래퍼 클래스란 자바에서 기본 자료타입을 객체로 다루기 위해 사용하는 클래스입니다. 자바는 크게 기본 타입(Primitive Type)과 참조 타입(Reference Type)의 자료형을 가지고 있습니다. 대표적인 기본 타입으로는 int, float, double, char, boolean 등이 있는데요! 개발을 하다보면 종종 기본 타입 데이터를 객체로 표현해야 하는 경우가 있습니다. (저는 코딩 테스트를 풀 때 가장 많이 사용하는 것 같습니다..) 이때 래퍼 클래스가 사용됩니다! 2. 래퍼 클래스의 종류 자바의 모든 기본 타입은 객체 형태로 표현할 수 있으며, 타입명이 비슷하기 때문에 쉽게 알고 사용할 수 있습니다! 기본 타입 (Primitive Type) .. Java 2024. 4. 18. [백준] 2157번 여행 (Java) 0. 출처 백준 2157번 문제입니다. 1. 문제 N개의 도시가 동쪽에서 서쪽으로 순서대로 위치해 있다. 제일 동쪽에 있는 도시는 1번 도시이며, 제일 서쪽에 있는 도시는 N번 도시이다. 당신은 이와 같은 도시 중에서 M개 이하의 도시를 지나는 여행을 계획하려 한다. 여행 경로는 반드시 1번 도시에서 시작해서 N번 도시에서 끝나야 한다. 물론 이 두 도시도 M개의 도시에 포함된다. 당신은 시차에 매우 민감하기 때문에, 한 번 서쪽으로 이동했다가 다시 동쪽으로 이동하면 몸이 대단히 아프다. 그래서 당신은 계속 서쪽으로만, 즉 도시 번호가 증가하는 순서대로만 이동하기로 하였다. 한편, 모든 도시에서 다른 모든 도시로 이동할 수 있는 건 아니다. 각각의 도시에서 다른 도시로 이동할 때에는 비행기를 타고 이동해.. Algorithm & Data Structure/코딩 테스트 문제풀이 2024. 4. 17. [Java] JVM GC 처리 과정 1. GC란 Garbage Collection의 약자인 GC는 JVM에서 제공하는 메모리 관리 기능입니다. Runtime Data Area의 Heap 영역에 저장된 객체들을 따로 정리하지 않으면, 메모리가 가득차 에러가 발생할 수 있습니다. 이를 방지하고자 JVM에서는 GC를 통해 메모리를 관리해 주며, 이 덕분에 개발자는 편하게 프로그래밍을 할 수 있습니다! (개발자들은 어느 시점에 GC가 동작하는지 모릅니다. 언제 역할을 수행하는지는 모르지만.. 늘 고마워 GC..) Java에서 System.gc()를 직접 호출할 수도 있지만.. 해당 메소드를 호출하는 것은 시스템의 성능에 매우 큰 영향을 미치므로 절대 호출해서는 안됩니다! 2. Java에 GC 도입이 가능했던 이유 Java는 weak generat.. Java 2024. 4. 16. [백준] 2302번 극장 좌석 (Java) 0. 출처 백준 2302번 문제입니다. 1. 문제 어떤 극장의 좌석은 한 줄로 되어 있으며 왼쪽부터 차례대로 1번부터 N번까지 번호가 매겨져 있다. 공연을 보러 온 사람들은 자기의 입장권에 표시되어 있는 좌석에 앉아야 한다. 예를 들어서, 입장권에 5번이 쓰여 있으면 5번 좌석에 앉아야 한다. 단, 자기의 바로 왼쪽 좌석 또는 바로 오른쪽 좌석으로는 자리를 옮길 수 있다. 예를 들어서, 7번 입장권을 가진 사람은 7번 좌석은 물론이고, 6번 좌석이나 8번 좌석에도 앉을 수 있다. 그러나 5번 좌석이나 9번 좌석에는 앉을 수 없다. 그런데 이 극장에는 “VIP 회원”들이 있다. 이 사람들은 반드시 자기 좌석에만 앉아야 하며 옆 좌석으로 자리를 옮길 수 없다. 오늘 공연은 입장권이 매진되어 1번 좌석부터 N.. Algorithm & Data Structure/코딩 테스트 문제풀이 2024. 4. 16. [Java] JVM의 구조와 자바 컴파일 과정 0. 자바의 특징 자바의 특징이라고 하면 플랫폼 독립성이 먼저 떠오르곤 합니다. 자바가 OS에 독립적일 수 있는 이유는 바로 JVM(Java Virtual Machine) 덕분인데요! 오늘은 자바가 플랫폼 독립성을 가질 수 있는 이유인 JVM의 기능과 컴파일 과정에 대해 알아보도록 하겠습니다! 1. JVM 구조 자바 가상 머신 JVM은 자바 프로그램 실행환경을 만들어 주는 소프트웨어입니다. JVM에는 자바 실행 환경 JRE(Java Runtime Environment)가 포함되어 있기 때문에, 개발자가 작성한 자바 파일을 컴파일한 .class 파일은 JVM에서 실행됩니다! (1) 클래스 로더 (Class Loader) 자바는 동적으로 클래스를 읽어옵니다. 그렇기 때문에 런타임 환경이 되어서야 모든 코드가.. Java 2024. 4. 16. [Java] Call by Value vs Call by Reference 1. 메소드의 파라미터 전달 방법 메소드를 호출할 때 파라미터 값을 전달하는 방법은 두 가지가 있습니다. 하나는 Call by Value 이고 다른 하나는 Call by Reference 입니다. (1) Call by Value Call by Vaule는 메소드를 호출할 때 데이터 값을 넘겨주는 방식을 뜻합니다. (Pass by Value 라고도 부릅니다.) 호출자의 변수와 수신자의 변수는 서로 다른 변수이며, 서로 다른 변수이기 떄문에 메소드 내에서 해당 변수를 조작하더라도 호출자에서 사용한 변수의 값은 변하지 않습니다. (2) Call by Reference Call by Reference는 메소드를 호출할 때 참조(주소)를 직접 전달하는 방식을 뜻합니다. (Pass by Value 라고도 부릅니다... Java 2024. 4. 16. spotify web api 사용 방법 (Java, Spring boot) 음악과 함께 하루를 기록할 수 있는 간단한 다이어리를 기획하고 spotify web api를 사용해 음악 검색 기능을 구현했습니다. API 사용 방법은 아래 공식 사이트에서 자세한 사항을 확인할 수 있습니다. https://developer.spotify.com/ Home | Spotify for Developers Music, meet code. Powerful APIs, SDKs and widgets for simple and advanced applications. developer.spotify.com 1. App 생성 스포티파이 개발자 사이트에 접속해서 로그인을 하고, 사용할 App을 새로 생성해 줍니다. 2. Client ID와 Client Secret 확인 생성한 App에서 Client ID.. Spring 2022. 2. 8. BFS와 DFS (+Java 코드) 1. 그래프란? 그래프란 다대다 연결관계를 표현할 수 있는, 여러 노드와 간선으로 연결된 자료구조를 의미합니다. 그래프는 여러 개의 정점(Vertex) 와 간선(Edge)로 이루어져 있습니다. G=(V, E)로 표기합니다. 정점(Vertex): 그래프의 구성요소 간선(Edge): 두 정점을 연결하는 선 차수(Degree): 정점 하나에 연결된 간선의 수 2. 그래프 탐색 그래프 탐색은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 방문하는 것을 의미합니다. 그래프 탐색에는 크게 두 가지 방법이 있습니다. (1) BFS_너비우선탐색 BFS는 Breadth-First-Search의 약자로 너비 우선 탐색을 의미합니다. 너비 우선 탐색은 기준 노드에서 인접한 노드를 먼저 탐색하는 방법인데요. 시작 정점으.. Algorithm & Data Structure/이론 2021. 12. 16. 이전 1 다음