문제 소개🥇️ 문제 레벨 : 골드3🔔 문제 유형 : 구현, 시뮬레이션, 브루트포스💬 풀이 언어 : Kotlin🖇️ 문제 링크 : 백준 문제 링크📝 문제혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연결되어 있다. 또한 모눈종이의 크기는 스티커의 크기에 꼭 맞아서, 상하좌우에 스티커가 포함되지 않는 불필요한 행이나 열이 존재하지 않는다. 혜윤이는 자신의 노트북에 이 스티커들을 붙이기로 했다. 혜윤이의 노트북은 마침 직사각형 모양이고, 스티커가 인쇄된 모눈종이와 같은 간격으로 격자가 그려져 있다. 혜윤이는 스티커들을 먼저 받았던 것부터 차례대로 격자에 맞춰서 붙이려..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 타입 안전 열거 패턴 책의 초판에서는 다음과 같은 타입 안전 열거 패턴(typesafe enum pattern)을 소개했었다. public class TypesafeOperation { private final String type; private TypesafeOperation(String type) { this.type = type; } public String toString() { return type; } public static final TypesafeOperation PLUS = new TypesafeOperation("+"); public static..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 var VS val 모든 변수는 우선 val로 만들고, 꼭 필요한 경우 var로 변경한다. long number1 = 10L; final long number2 = 10L; long과 final long의 차이는 가변 / 불변의 차이를 나타낸다. 구분 설명 long 처음 값을 할당 받고 나서, 다시 한 번 값을 바꿔줄 수 있다. final long 한 번 값을 지정해주면 더 이상 바꿀 수 없다. 위 코드를 코틀린으로 변환하면 다음과 같다. // variable var number1 = 10L // value val number2 = 10L 코틀린에서는 모든 변수에 수정..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에 얘기해주는 것이다. 상수 인터페이스 상수 인터페이스란, 상수를 뜻하는 static final 필드로 가득찬 인터페이스를 의미한다. 이 상수들을 사용하려는 클래스에서는 정규화된 이름을 쓰는걸 피하고자 그 인터페이스를 구현하곤 한다. public interface PhysicalConstants { // 아보가드로 수 (1/몰) static final double AVOGADROS_NUMBER = ...; // 볼츠만 상수 (J/K) static final double BOL..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 Java8에서 부터 기존 인터페이스에 default 메소드를 추가할 수 있게 되었다. 이 메소드를 선언하면, 그 인터페이스를 구현한 후 디폴트 메소드를 재정의하지 않은 모든 클래스에서 디폴트 구현이 쓰이게 된다. 디폴트 메소드 public interface Calculator { int sum(int num1, int num2); int minus(int num1, int num2); default int multiple(int num1, int num2) { return num1 * num2; } } public class EngineeringCalc impleme..
서론 Effective Java 3/E를 공부하면서 Item5에 Supplier라는 것을 처음 보았다. 이 부분에 대해 이해가 가지 않는 부분이 있어, 늦게나마 스터디하는 팀원분들께 여쭤보았는데 내용이 흥미로워서 정리해본다! 함수형 프로그래밍 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. Java 8부터 이러한 방식으로 개발할 수 있도록 함수형 인터페이스를 지원한다. package java.util.function; @FunctionalInterface public interface Supplier { T get(); } 위 코드와 같이 함수형 인터페이스는 @FunctionalInterface 어노테이션을 지니고 있으며, 패키지를 들여다보면 정..