[백준/Java] 2805번 - 나무 자르기
·
코딩 테스트/백준
문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로 지정했다면, 나무를 자른 뒤의 높이는 15, 15..
[프로그래머스/Java] 타겟 넘버
·
코딩 테스트/프로그래머스
문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 100..
[프로그래머스/Java] 주식가격
·
코딩 테스트/프로그래머스
문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 시점의 ₩3은..
[프로그래머스/Java] 올바른 괄호
·
코딩 테스트/프로그래머스
문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false - 문제 풀이..
[프로그래머스/Java] 기능개발
·
코딩 테스트/프로그래머스
문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
[프로그래머스/Java] 같은 숫자는 싫어
·
코딩 테스트/프로그래머스
문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..
boolean 자료형: 논리연산자(AND, OR, XOR) / &&와 & 연산자 차이
·
Java
- AND 연산자 : 조건이 모두 참이면 참 jshell> true && true $1 ==> true jshell> true && false $2 ==> false jshell> false && true $3 ==> false jshell> false && false $4 ==> false - OR 연산자 : 조건이 하나라도 참이면 참. 모두 거짓이어야 거짓. jshell> true || true $5 ==> true jshell> true || false $6 ==> true jshell> false || true $7 ==> true jshell> false || false $8 ==> false - XOR 연산자 : 피연산자가 서로 상이해야 참. 서로 같으면 거짓. jshell> true ^ tr..
[java] BigDecimal: 정확한 부동소수 계산
·
Java
- BigDecimal: 정확한 부동소수 계산 부동소수는 소숫점값을 명확하게 나타내지 않아서 정확한 결과가 요구되는 계산에서 float와 double을 사용하지 않는 것이 좋다. => 정확한 결과에는 BigDecimal 사용 import java.math.BigDecimal;//import 필요 public class BigDecimalCalculate { public static void main(String[] args) { double d1 = 34.56789876; double d2 = 34.2234; double d3 = d1 + d2; System.out.println(d3);//68.79129875999999 BigDecimal b1 = new BigDecimal("34.56789876");..
[java] 자료형 data type / 형변환
·
Java
- 자료형 data type: Integer, Floating Point, Boolean, Character - Integer byte 1byte short 2byte int 4byte long 8byte - Floating Point float 4byte double 8byte - Boolean boolean 1byte - Character char 2byte - 자바와 리터럴은 8진수와 16진수를 지원 : 0으로 시작하면 8진수, 0x로 시작하면 16진수 public class DataType { public static void main(String[] args) { int eight = 010; System.out.println(eight);//8 출력 int sixteen = 0x10; Syst..
생성자와 객체 생성
·
Java
- 생성자를 정의하지 않았을 때 일반적인 방법으로 객체 생성이 가능하다. => 클래스명 객체이름 = new 클래스명(); - MotorBikeRunner.java public class MotorBikeRunner { public static void main(String[] args) { MotorBike ducati = new MotorBike(); ducati.setSpeed(100); System.out.println(ducati.getSpeed()); } } - MotorBike.java public class MotorBike { private int speed; public void setSpeed(int speed) { if (speed > 0) this.speed = speed; } pu..
yslle
'Java' 태그의 글 목록 (2 Page)