본문 바로가기

java

(20)
[프로그래머스] 로또의 최고 순위와 최저 순위 (Java) 카테고리 기본 알고리즘 나만의 카테고리 아이디어 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 요점 int 배열의 순회 방법 중 어느 방법이 좋은지 비교해보자 참고 지식 [Java] IntStream.of(int[]) 풀이 (Java) // 추천 import java.util.*; class Solution { public int[] solution(int[]..
[Java] Java의 날짜, 시간 클래스는 어떻게 편해졌나 Java 1.7까지는 기본 SDK에서 날짜와 시간을 표현하고 사용하기 위해서는 java.util.Date 클래스와 java.util.Calendar 클래스를 이용해야 했습니다. 하지만 아주 잠깐만 사용해봐도 어마어마하게 불편하다는 것을 알 수 있습니다. 그래서 나온것이 Joda-Time이라는 오픈소스 라이브러리였고 Java 8에서는 드디어 개선되어서 적용되었습니다. 그러면 어떻게 좋지 않았고 어떠한 사항이 개선되었는지 확인해보겠습니다. 우선 아주 잘 정리된 Naver D2의 게시글을 공유해드립니다. 저의 게시글은 아래 링크의 글에 기반으로 한 글입니다. 그런데 정리를 곁들인. d2.naver.com/helloworld/645609 1. JDK 1.8 미만의 날짜 계산 단점 사용시 착오가 생길 수 있는 부..
[프로그래머스] 두 개 뽑아서 더하기(C++, Java) 카테고리 기본 알고리즘 나만의 카테고리 함수 활용 문제 문제 링크 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 요점 중복제거에 대한 요령이 필요하다 (Set활용, Sort와 unique활용 등) 참고 지식 [C++] sort(start, end) [C++] unique(start, end) [Java] Set 컨테이너 풀이 (C++) #include #include #in..
Java 1.8 Default Method Default Method - 자바 1.8부터 도입된 문법으로 인터페이스 내부에 로직을 포함 시킬 수 있는 것이 특징 - 하위호환성을 위해 도입 Interface 라는 기능에 어울리지 않는 Default Method가 Java 1.8에서 추가 되었습니다. 하위호환성을 위한다는 것은 기존의 레거시 코드에 interface 메소드를 추가해야한다면 해당 interface를 상속받는 모든 클래스에서 추가된 메소드의 구현을 해줘야합니다. 하지만 Default Method를 사용하고 수정이 필요한 클래스에서만 메소드 오버라이딩을 해준다면 간편하게 수정할 수 있습니다. interface TestInterface { //기존 메서드들 public void go(); public void get(); default vo..
[프로그래머스] 도둑질 (Java) 카테고리 DP (동적계획법) 나만의 카테고리 간단한 DP 문제 링크 programmers.co.kr/learn/courses/30/lessons/42897?language=java 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 요점 3번째 부터 뽑는 경우의 수를 생각해야한다 참고 지식 Math.max() 풀이 (Java) import java.util.*; class Solution { public int solution(int[] money) { int answer = 0; int[] firstDp = ne..
[프로그래머스] 방문 길이 (Java) 카테고리 배열 나만의 카테고리 로직 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 요점 배열 활용 길은 양쪽에서 지나가는 경우를 모두 확인해야한다 참고 지식 String.length() - Java 풀이 (Java) class Solution { public boolean[][][][] visitedPoint = new boolean[11][11][11][11]; public int[] moveX = {-1, 1, 0, 0}; public int[] moveY = {0, 0, 1, -1}; public int solution(String dirs) { int answer = 0; int..
Java 1.8 method reference (메소드 레퍼런스) Method Referece - 자바 1.8부터 도입된 문법으로 특정 람다 표현식을 축약한 것 - 가독성을 높일 수 있다 간단하게는 람다 표현식을 특수한 상황에서 좀 더 보기 편하게 작성하는 방식이라고 이해할 수 있습니다. //람다식 (args) -> ClassName.staticMethod(args) //메소드 참조 ClassName::staticMethod //람다식 (arg0, rest) -> arg0.instanceMethod(rest) //메소드 참조 ClassName::instanceMethod //람다식 (args) -> expr.instanceMethod(args) //메소드 참조 expr::instanceMethod //모던자바인액션 참조 예시를 들어보자면 저는 주로 stream과 함께 ..
Java 1.8 Lambda Expression (람다 표현식) Lambda Expression (람다 표현식) - 자바 1.8 부터 도입된 함수 지향적 표현 방식이다. - 간단하게 식별자없이 실행 가능한 함수표현이다. - 병렬처리, 이벤트 지향적 프로그래밍에 적합하다. 사용방법 (매개변수, ...) -> { 실행문 ... } //람다식 x interface Phone{ String getName(String series, String version); } class Main { public void mainExample() { Person person = new Person(); person.buyPhone(new Phone() { public String getName(String series, String version) { return series + vers..
Java 각 버전의 특징들 (~JAVA21) Java 1.8이 나온지는 벌써 6년정도 되었습니다. 그동안 java 1.8을 꾸준히 사용해오고 jdk 11뿐만 아니라 최근에는 jdk 17까지 나온 상황입니다. 이 시점에서 다시 한번 정리하면 좋을 것 같아서 Java 1.8 부터 정리해보려고 합니다. 물론 다양한 특징들이 있겠지만 특징적인 일부만 나열하도록 하겠습니다 Java 1.8 특징 (2014.03 release) Lambda Expression (람다표현식) Method Reference (메소드 참조) Stream (스트림) Default Method Optional Joda Time Java 9 특징 (2017.09 release) Jingsaw 기반 런타임 모듈화 Jshell Private Interface Method Immutable ..
[Java] LinkedList 사용법 정리 1. LinkedList 란? 2. LinkedList vs ArrayList public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable LinkedList와 ArrayList는 위와 같이 인터페이스를 구현하고 있습니다. 한가지 다른건 Deque를 구현한다는 점이 ArrayList와 다릅니다. 따라서 Java의 Queue에서 지원하는 메소드를 사용할 수 있다는게 특징입니다. Queue 지원 메소드(FIFO ..