전체 글 155

[JAVA] 절차지향 언어와 가장 큰 차이점

대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다.  => 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다. C언어의 경우 : A.c —(compile)—> A.obj(binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.기계에 독립적인 중간 코드를 만드는 과정인 것이다.JAVA의 경우 : A.java —(compile)—> A.class(byte code체계의..

[JAVA] 자바 컴파일 특징을 JDK 구성 요소를 통해 알아보자

0. 서론  [JAVA] 절차지향 언어와 가장 큰 차이점대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수hansjour.tistory.com      1. 자바 프로그램의 구성요소와 특징JDK의 구성을 보자. JDK > JRE > JVM 의 포함관계로 구성되어있다.  JDK (Java Development Kit)자바 소스 코드를 컴파일하여 실행 가능한 프로그램을 생성하는 개발 도구 세트-포함 항목컴파일러 (javac), 디버거, 개발 도구 (java, javac, javadoc, jar)JDK는 자바 개발자가 소스 코드를 작성하고, ..

[JAVA/프로그래머스] 연속된 부분 수열의 합

[문제]https://campus.programmers.co.kr/tryouts/138985/challenges  [문제 설명]비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다.부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution ..

[JAVA/프로그래머스] 완주하지 못한 선수

[문제]https://campus.programmers.co.kr/app/courses/24215/curriculum/lessons/322800#part-71108문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.제한사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로..

[JAVA/프로그래머스] 주식가격

[문제]https://campus.programmers.co.kr/tryouts/139163/challenges문제 설명초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.제한사항prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다.입출력 예pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]입출력 예 설명1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것..

[JAVA/프로그래머스] 두 큐 합 같게 만들기

[문제]https://campus.programmers.co.kr/tryouts/139161/challenges문제 파악문제 설명길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다.큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다...

[JAVA/프로그래머스] [1차] 캐시

[문제]https://school.programmers.co.kr/learn/courses/30/lessons/17680 [문제 설명]캐시지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다.이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다.어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다.어피치에게 ..

[JAVA/프로그래머스] 기능개발

[문제]https://campus.programmers.co.kr/tryouts/139164/challenges  [문제 설명]프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.제한 사항작업의 개수(progresses, speed..