전체 글 (162) 썸네일형 리스트형 프로그래머스 알고리즘 고득점 kit 스택/큐 - 기능개발 문제 요약각 기능의 개발 진도는 정수로 주어지며 모든 기능은 매일 일정한 속도로 개발된다.기능은 앞에 있는 기능이 완성되어야 함께 배포된다.각 기능별로 완성까지 필요한 일수를 계산하고, 하루에 몇 개의 기능이 함께 배포되는지를 구해야 한다.입력 예시progresses = {93, 30, 55};speeds = {1, 30, 5};출력 예시[2, 1]첫째 날: 7일 뒤 첫 번째와 두 번째 기능이 완성 → [2]이후 9일째에 세 번째 기능이 혼자 완성 → [1]알고리즘 설계각 기능이 완성되기까지 걸리는 날짜를 계산한다.(100 - progresses[i]) / speeds[i] (나누어 떨어지지 않으면 하루 더 필요)계산된 날짜를 순서대로 Queue에 넣는다.Queue를 순회하며 앞의 기능보다 작거나 같은 .. 컴파일과 빌드 차이 컴파일(Compile)컴파일은 개발자가 작성한 소스 코드를 기계어에 가까운 코드로 변환하는 과정이다.즉, 사람이 이해할 수 있는 코드(예: .java)를 컴퓨터가 이해할 수 있는 목적 코드 또는 중간 코드로 바꾸는 작업이다.이 작업을 수행하는 프로그램을 컴파일러(Compiler)라고 한다.예를 들어 자바에서는 .java 파일을 컴파일하면 JVM이 실행 가능한 바이트코드인 .class 파일이 생성된다.빌드(Build)빌드는 소스 코드를 실행 가능한 소프트웨어(예: .jar, .war)로 만들어내는 전체적인 일련의 과정을 말한다.이 과정에는 전처리, 컴파일, 패키징, 테스트, 배포 등이 포함된다.즉, 컴파일은 빌드의 한 단계이며, 빌드는 컴파일보다 더 넓은 개념이다.빌드를 자동화하고 관리해주는 도구를 빌드 .. CPU, 주기억장치(RAM), 보조기억장치 CPUCPU는 메모리(주기억장치)에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행하는 장치다.내부 구성 요소는 다음과 같다.ALU(산술논리연산장치) : 컴퓨터 내부에서 수행되는 대부분의 계산을 수행한다.레지스터 : CPU 내부의 임시 저장 장치이다. 접근 속도가 빠르며, 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다.제어 장치 : 제어 신호를 내보내고 명령어를 해석하는 장치이다.CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보낸다.CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보낸다.주기억 장치주기억장치는 CPU가 현재 실행 중인 프로그램의 명령어와 데이터를 일시적으로 저장하는 메모리이다.보통 R.. JVM 메모리 구조 JVM이란?Java Virtual Machine의 약자로 자바 가상 머신이다. Java는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속 받지 않고 실행되기 위해 JVM이 자바와 OS 사이에서 중계자 역할을 수행한다.위의 흐름은 자바 프로그램이 실행되는 과정을 보여준다. 개발자가 작성한 .java 소스 코드는 javac 컴파일러를 통해 .class 확장자의 바이트코드 파일로 변환된다. 이렇게 생성된 바이트코드는 JVM이 읽어 들여 ClassLoader를 통해 메모리에 로딩한 뒤 Execution Engine에서 해석하거나 JIT(Just-In-Time) 컴파일러를 이용해 기계어로 변환한다. 최종적으로 변환된 기계어는 CPU에 의해 실행되어 자바 프로그램이 동작하게 된다.JVM 내부 구조1. C.. 프로그래머스 알고리즘 고득점 Kit 해시 - 베스트앨범 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42579문제 접근 방식장르별 총 재생 수를 구한다.장르별 노래 리스트를 관리한다.장르를 총 재생 수 기준으로 정렬한다.각 장르 안에서 노래를 재생 수 기준으로 정렬한 후 상위 2개를 선택한다.전체 코드import java.util.*;class Solution { // 각 노래 정보를 저장할 Song 클래스 정의 (인덱스와 재생 수) static class Song { int idx, plays; Song(int idx, int plays) { this.idx = idx; this.plays = plays; .. 백준 1018번 - 체스판 다시 칠하기 문제 https://www.acmicpc.net/problem/1018 풀이 방법1. 가능한 모든 8x8 구간을 탐색(0, 0)부터 시작하여 (N-8, M-8)까지 순회각 시작 좌표에서 8x8 크기 체스판을 자른다.2. 두 가지 색 시작 케이스를 모두 고려왼쪽 위가 'B'라고 가정하고 고쳐야 하는 칸 수왼쪽 위가 'W'라고 가정하고 고쳐야 하는 칸 수3. (x + y) % 2를 이용한 패턴 비교(x + y) % 2 == 0: 시작 색(x + y) % 2 == 1: 반대 색전체 코드import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ro.. 백준 2751 - 수 정렬하기 2 (Java, 빠른 입출력) 문제 : https://www.acmicpc.net/problem/2751전체 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { // 빠른 입력 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; for(int i = 0; i 코드 설명입력BufferedReader br = new B.. 백준 9019번 - DSLR (Java, BFS 풀이) 문제: https://www.acmicpc.net/problem/9019 문제 설명네 자리 수 A를 네 가지 명령어(D, S, L, R)를 사용하여 B로 바꾸는 가장 짧은 명령어 문자열을 구하는 문제입니다.D: n을 두 배로 만들고 10000으로 나눈 나머지S: n에서 1을 뺌 (0이면 9999)L: n을 왼쪽으로 한 자리 회전 (1234 → 2341)R: n을 오른쪽으로 한 자리 회전 (1234 → 4123)전체 코드import java.util.*;public class Main { static class Pair { int num; String commands; Pair(int num, String commands) { this.num = num; this.commands = com.. 이전 1 2 3 4 ··· 21 다음