![[C++] 백준 13단계 - 1427번 문제 (소트인사이드)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcgRjHh%2FbtsnE970rnG%2FAAAAAAAAAAAAAAAAAAAAACE-bb6Av8Fg7f_9dloX4qDvprbRkzpdC3tyqltGXIKm%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DJ3DBPZaPtcatUAaFYazGK8KhdGc%253D)
문제설명 소스코드 #include #include using namespace std; bool compare(int a, int b) { return a > b; } int main() { string N; cin >> N; sort(N.begin(), N.end(),compare); cout
![[JAVA] 봉인된 인터페이스(sealed interface)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb0ZL4s%2FbtsnwRT0paH%2FAAAAAAAAAAAAAAAAAAAAAH-g2XnNSZQQ7OoezdQewxSklfiQN2P8VmpzknDGrp6r%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D9XHnpg9yRKhVa3pTv%252BpJKNSziO8%253D)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. Java 15부터 무분별한 자식 인터페이스 생성을 방지하기 위해 봉인된 인터페이스를 사용할 수 있다. 인터페이스 A의 자식 인터페이스는 인터페이스 B만 가능하고, 그 이외는 자식 인터페이스가 될 수 없도록 아래와 같이 인터페이스 A를 봉인된 인터페이스로 선언할 수 있다. public sealed interface InterfaceA permits InterfaceB{ } sealed 키워드를 사용하면 permits 키워드 뒤에 상속 가능한 자식 인터페이스를 지정해야한다. 봉인된 InterfaceA를 상속하는 interfaceB는 non-sealed 키워드로 아래와 같이 선언하거나 se..
![[C++] 백준 13단계 - 10989번 문제 (커트라인)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fvug05%2FbtsnDBqWH0T%2FAAAAAAAAAAAAAAAAAAAAAArf2DI8HoxIz67LSTXYhDuUoMyyPA0-IJS7dPwS8P8T%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DuJQ6nPCwwQlIxO6yxI60PXTPH4U%253D)
문제설명 소스코드 #include #include using namespace std; bool compare(int a, int b) { return a > b; } int main() { int N, k; cin >> N >> k; int* arr = new int[N]; for (int i = 0; i > arr[i]; sort(arr, arr + N, compare); cout
![[JAVA] 인터페이스 - default 메소드, static 메소드, private 메소드](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FoAAQ6%2Fbtsnfs14wPW%2FAAAAAAAAAAAAAAAAAAAAALIVJuhGUyS3PU4r15C31Z9OLLmVp5w7_HO94H1IocA0%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DcoP4BKj2%252FH%252BfMecVa712Ps7jd2I%253D)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 디폴트(default) 메소드인터페이스에 추상 메소드를 선언할 수 있다.추상 메소드는 애초에 실행 블록 자체를 선언할 수 없기 때문에, 실행 코드를 넣을 수 없다.하지만 디폴트 메소드는 실행 블록이 있기 때문에 실행 코드를 넣을 수 있다.일반적으로 구현 클래스가 여러 개인데, 동일한 코드를 넣어야 할 때, 일일이 다 오버라이드하기 번거로울때 쓰인다.인터페이스 안에 선언되는 메소드이므로 구현 객체가 반드시 필요디폴트 메소드를 사용하면 구현 클래스에서 따로 정의할 필요가 없다.(오버라이드 하지 않으면 모든 객체에서 동일한 기능을 함)구현 클래스에서 재정의(오버라이드)도 가능하다.(재정의..
![[C++] 백준 13단계 - 2587번 문제 (대표값2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdnaolI%2FbtsnF5DIWJc%2FAAAAAAAAAAAAAAAAAAAAAKY8_VItDSXTKWY_-ya6475KApswPiFBGs3dBqjjmruQ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D2wtoxd72rLUQn3qye6D5JaOasl4%253D)
문제설명 소스코드 #include #include using namespace std; int main() { int arr[5]; int sum = 0; for (int i = 0; i > arr[i]; sum += arr[i]; } sort(arr, arr + 5); cout
![[C++] 백준 13단계 - 10989번 문제 (수 정렬하기 3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbom0W5%2Fbtsnwpwfyiz%2FAAAAAAAAAAAAAAAAAAAAAD4C6l9qSqSUicn9TI-wH0smnMhqnXvCBzrhqGXfvPmu%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DpGnC3M5vR%252BoRJJHtnARNF%252BNYckw%253D)
문제설명 소스코드 #include using namespace std; int main() { ios_base::sync_with_stdio(false); //표준 스트림 동기화 해제 cin.tie(NULL); //입력과 출력 연결 끊기 int N; cin >> N; int arr[10001] = { 0 }; for (int i = 0; i > idx; arr[idx] += 1; } for (int i = 1; i < 10001; ++i) { for (int j = 0; j < arr[i]; ++j) cout
![[JAVA] 봉인된 클래스(sealed class)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbLmYUJ%2Fbtsm4Bwusgf%2FAAAAAAAAAAAAAAAAAAAAADu-rYtgfDJqZ3GKjiV3YvtjIcRglCycreUhZmdj7MI0%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DozR4cqSsj4ByH7WyTUne33zGFmw%253D)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 기본적으로 final 클래스를 제외한 모든 클래스는 부모 클래스가 될 수 있다.또한 부모가 자식을 선택하는 것이 아니라, 자식이 부모를 선택해서 상속을 받을 수 있다.하지만 Java 15부터는 부모 클래스가 특정 자식 클래스에게만 상속을 허락할 수 있게 되었다. sealed 키워드를 사용하면 permits 키워드 뒤에 상속 가능한 자식 클래스를 지정해야 한다.public sealed class Person permits Employee, Manager{}이런 식으로 Person 클래스를 봉인된 클래스로 지정하고 permits 옆에 상속을 허락할 자식 클래스를 지정하면 된다. 봉인된 P..
![[C++] 백준 13단계 - 2751번 문제 (수 정렬하기 2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbRhcqW%2FbtsnrsOykka%2FAAAAAAAAAAAAAAAAAAAAAAWxK98pHnxGpJcSFKjvcmr9P0YVaOdTQP72ma7FYXzy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DB8Tw77jal3Kf0WDNhZ%252FULO0RglE%253D)
문제설명 소스코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); //표준 스트림 동기화 해제 cin.tie(NULL); //입력과 출력 연결 끊기 int N; cin >> N; int* arr = new int[N]; for (int i = 0; i > arr[i]; sort(arr, arr+N); for (int i = 0; i < N; ++i)cout