본문 바로가기

전체 글846

백준 3687 3687번: 성냥개비 문제 성냥개비는 숫자를 나타내기에 아주 이상적인 도구이다. 보통 십진수를 성냥개비로 표현하는 방법은 다음과 같다. !https://www.acmicpc.net/upload/images/match.png 성냥개비의 개수가 주어졌을 때, 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 큰 수를 찾는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 최대 100개 이다. 각 테스트 케이스는 한 줄로 이루어져 있고, 성냥개비의 개수 n이 주어진다. (2 ≤ n ≤ 100) 출력 각 테스트 케이스에 대해서 입력으로 주어진 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 가장 큰 수를 출력한다. 두 숫자는 모두 양수이어야 하고, 숫자는 0으.. 2023. 8. 15.
2023.08.13 TIL Java 익명 클래스 메서드의 매개변수로 인터페이스를 받는다고 가정하면 다음과 같다. public void method(TestInterface test){ ... } 만약 기존 방법으로 사용하려면 다음과 같이, TestInterface 구현체를 만들어서 매개변수로 전달하여야 한다. public class TestInterfaceImpl implements TestInterface { ... } 만약 저 메서드가 일회용이라 가정하면, 딱 한번 사용하기 위해 클래스를 만들고, 메모리에 올려야 한다. 익명 클래스를 이용하면 구현체를 만들지 않고도 매개변수로 바로 전달할 수 있다. 익명 클래스를 사용하면 재사용 하지 못하고, 딱 1번만 사용이 가능하다. 그 후 어떠한 참조도 하지 못하게 된다. method(n.. 2023. 8. 13.
왜 enum(열거형)을 상속하지 못할까? 공부를 하다가 enum 상속을 막은 이유와 어떻게 컴파일러 단에서 막는지 궁금해서 찾아보았다. Enum 클래스는 왜 상속이 안될까? Java에서 enum 도 결국 클래스이다. 일반 클래스는 상속 받을 수 있다. 근데 왜 enum 클래스는 상속을 통해 확장하지 못할까? 왜 상속을 막은거고, 어떤 방식으로 막을까? enum을 컴파일하면 Java 컴파일러를 통해 내부적으로 다음과 같이 된다. 열거형을 추상 클래스 java.lang.Enum의 하위 클래스로 만든다. 즉, java.lang.Enum을 상속받는다. 열거형을 final 클래스로 컴파일한다. Java 에서는 클래스에 final 키워드를 붙이면, 상속이 불가능하다. 만약 상속이 가능하더라도, Enum 클래스를 최종적으로 상속하게 되는데, 이중 상속이 발.. 2023. 8. 13.
자바 static 정적 코드 정적 코드(static code)는 클래스나 객체의 인스턴스 생성 없이 호출하거나 사용할 수 있는 코드 입니다. 정적 변수 : 클래스의 모든 인스턴스가 공통으로 사용하는 변수이고, 객체가 생성되어 있지 않아도, 클래스 이름으로 접근 가능합니다. 정적 메서드 : 인스턴스 생성 없이 호출 가능한 메서드로, 객체가 생성되어 있지 않아도, 클래스 이름으로 접근이 가능합니다. 정적 블록 : 클래스 로딩 시 실행되는 블록으로, 클래스의 초기화 작업을 수행합니다. 또한 생성자로 클래스 로딩 시 더 우선적으로 수행됩니다. 내부 클래스 static 내부 클래스는 static으로 선언해야 한다. 만약 static 으로 선언하지 않으면 외부 참조를 하게 된다. 즉, 내부 클래스가 외부의 멤버를 사용하지 않아도 숨.. 2023. 8. 13.
접근 지정자 접근 지정자란? 자바의 접근 지정자는 클래스, 변수, 메서드 등의 접근 가능 범위를 제어하는 키워드 입니다. 이를 통해 객체 지향 프로그래밍에서 정보 은닉, 캡슐화, 모듈화를 지원하며, 코드의 가독성과 유지보수성을 높일 수 있습니다. public : 어떤 클래스에서든 접근이 가능 합니다. protected : 같은 패키지 내에서 접근이 가능하며, 다른 패키지의 자손 클래스에서 접근이 가능합니다. default : 같은 패키지 내에서만 접근이 가능합니다. private : 같은 클래스 내에서만 접근이 가능합니다. 2023. 8. 13.
병목현상 병목현상이란? 병목현상(Bottleneck)은 전체 시스템 또는 프로세스의 성능을 제한하는 한계적인 요소 또는 지점을 가리키는 용어 입니다. 어떤 부분이나 요소가 성능을 더 빠르게 진행시킬 수 있는 것들의 속도를 늦추거나 제한하는 것을 의미합니다. 이로 인해 시스템의 전체적인 성능이 저하될 수 있습니다. 병목현상이 발생하는 이유 주로 시스템 내에서 자원의 한계 또는 제한된 처리량 때문에 발생합니다. 자원 제한 : 하나의 컴포넌트가 자원이 다른 컴포넌트보다 더 느리게 동작하거나 처리량이 한정되어 있을 때 병목현상이 발생할 수 있습니다. 선형 처리 : 여러 구성 요소가 동시에 작업을 수행하더라도 최종 결과를 만들기 위해 순차적으로 처리되어야 하는 경우 발생할 수 있습니다. 프로세스 의존성 : 여러 프로세스 .. 2023. 8. 13.