![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c7uJJ3/btrEYh90ktN/XlqzXKTyAbGvUUHv3Kmkw1/img.png)
📚 문제 입력 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 입력 예시 5 3 1 4 3 2 출력 예시 32 🧑🏻💻 풀이 과정 낮은 순으로 점차 더해야 모든 사람이 돈을 인출하기까지 가장 적은 시간이 나온다. 입력 받은 n의 값을 오름차순 정렬 후, 반복하면서 answer에 계속 더하자. n = int(input()) times = list(map(int, input().split())) times.sort() # 시간이 낮은 순 정렬 answer = 0 for i in range(len(times)): ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/QSS5H/btrEYIe0Q9X/utg8FXu3OHUT8zyPJrEgkK/img.jpg)
이번에는 코틀린의 다양한 클래스에 대해 알아보자! 1. Data Class 2. Enum Class 3. Sealed Class, Sealed Interface Data Class DTO(Data Transfer Object)를 통해 알아보겠다. Java package classes; import java.util.Objects; public class PersonJa { private final String name; private final int age; public PersonJa(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() {..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsQp1g/btrESDFhRCu/IgWRVvNZHhkAvTkn2UETm0/img.jpg)
📚 문제 어떠한수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고한다. 단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. 입력 조건 첫째 줄에 N(2 ~ N ~ 100.000)과 K(2 ~ K ~ 100.000)가 공백으로 구분되며 각각 자연수로 주어진다. 이때 입력으로 주어지는 N은 항상 K보다 크거나 같다. 출력 조건 첫째 줄에 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 횟수의 최솟값을 출력한다. 입력 예시 25 5 출력 예시 2 🧑🏻💻 풀이 과정 n%k의 결과가 0이라면, n을 k로 두 번 나누었을 때 n은 1이 된다. n%k의 결과가 0이 될 때까지 1번 과정을 수행하자. n, k = map..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yVFeH/btrELVGLW7Z/FIhLAK6fFsXkfcKhk6q7G0/img.jpg)
📚 문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N x M형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그다음 선택된 행에 포함된 카드들 중, 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려히여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야한다. 입력 조건 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cYoAZd/btrEJIUT37C/Ra0vuwmDjooGIZEd2npYCK/img.jpg)
방송통신대학교 기말 시험 준비로 포스팅을 하지 못했는데, 3학년 1학기가 종강된 기념으로 오랜만에 글을 작성한다. 이번 포스팅에서는 코틀린에서 object 키워드를 다루는 방법에 대해서 알아보자! 1. static 함수와 변수 2. 싱글톤 3. 익명 클래스 static 함수와 변수 Java public class PersonJava { private static final int MIN_AGE = 1; public static PersonJava newPerson(String name) { return new PersonJava(name, MIN_AGE); } private String name; private int age; private PersonJava(String name, int age) { ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cfdiLY/btrD6xL9Xdx/kqKrgpX4n7bqVaC32mxNxK/img.jpg)
접근 제한자는 객체가 공개 되어야 하는 범위를 정해주는 역할을 한다. 이번 포스팅에서는 코틀린에서 접근 제한자를 다루는 방법에 대해서 알아보자! 1. Java와 Kotlin의 가시성 제어 2. Kotlin 파일의 접근 제한자 3. 다양한 구성요소의 접근 제한자 4. Java와 Kotlin을 함께 사용할 경우 주의할 점 Java와 Kotlin의 가시성 제어 우선 자바의 접근 제한자는 아래와 같다. public : 모든 곳에서 접근 가능 protected : 같은 패키지 또는 하위 클래스에서만 접근 가능 default : 같은 패키지에서만 접근 가능 private : 선언된 클래스 내에서만 접근 가능 다음은 코틀린에서의 접근 제한자이다. public : 모든 곳에서 접근 가능 protected : 선언된 클..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Dc92k/btrD7EKIqv7/T6OsXftFcAiOTSOMMUeMN0/img.png)
@target vs @within @target은 인스턴스의 모든 메서드를 조인 포인트로 적용하고, @within은 해당 타입 내에 있는 메서드만 조인 포인트로 적용한다. 이를 풀어서 이야기하면, @target은 부모 클래스의 메서드까지 어드바이스를 다 적용하고, @within은 자기 자신의 클래스에 정의된 메서드에만 어드바이스를 적용한다는 것이다. Test code @Slf4j @Import({AtTargetAtWithinTest.Config.class}) @SpringBootTest public class AtTargetAtWithinTest { @Autowired Child child; @Test void success() { log.info("child Proxy={}", child.getClas..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bicVCy/btrDRN1YQTg/Wxky5AHNhNNzcXkeK9VpQK/img.jpg)
이번 포스팅에서는 코틀린에서 예외를 처리하는 방법에 대해서 알아보자! 1. try catch finally 구문 2. Checked Exception과 Unchecked Exception 3. try with resources 구문 try catch finally 구문 주어진 문자열을 정수로 변경하는 예제 Java private int parseIntOrThrow(@NotNull String str) { try { return Integer.parseInt(str); } catch (NumberFormatException e) { throw new IllegalArgumentException(String.format("주어진 %s는 숫자가 아닙니다.", str)); } } Kotlin fun parseI..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c1XhsQ/btrDLWydkwW/ugQDBLdcq5P9lP3Svdsae0/img.jpg)
코틀린에서 반복문은 자바와 크게 다르지 않다. 아래 예제를 살펴보며 확인해보자! 1. for-each문 2. 전통적인 for문 3. while문 for-each문 숫자가 들어있는 리스트를 하나씩 출력하는 예제 Java List numbers = Arrays.asList(1L, 2L, 3L); for (long number : numbers) { System.out.println(number); } Kotlin val numbers = listOf(1L, 2L, 3L) for (number in numbers) { println(number) } for-each문 안에서 자바에서는 :를 사용했다면, 코틀린에서는 in을 사용하고, 자바와 동일하게 iterable이 구현된 타입이라면 모두 들어갈 수 있다. 이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Bw5Cg/btrDE8fjQto/g8ZYdK1AufHYuXpkkgMKLk/img.png)
포인트컷 지시자 포인트컷 표현식은 execution같은 포인트컷 지시자(Pointcut Designator)로 시작한다. 줄여서 PCD라 한다. 포인트컷 지시자 종류 execution : 메소드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용하고, 기능도 복잡하다. within : 특정 타입 내의 조인 포인트를 매칭한다. args : 인자가 주어진 타입의 인스턴스인 조인 포인트 this : 스프링 빈 객체(스프링 AOP 프록시)를 대상으로 하는 조인 포인트 target : Target 객체(스프링 AOP 프록시가 가르키는 실제 대상)를 대상으로 하는 조인 포인트 @target : 실행 객체의 클래스에 주어진 타입의 애노테이션이 있는 조인 포인트 @within : 주어진 애노테이션이 있는 ..
- Total
- Today
- Yesterday
- Algorithm
- 리팩토링
- 스프링부트
- spring boot
- 인프런
- leetcode
- 백준
- 데이터베이스
- webflux
- 코테
- 노마드
- Real MySQL
- 코틀린
- 정렬
- 구현
- 김영한
- 노마드코더
- 문자열
- 자료구조
- mysql 8.0
- 스프링 부트
- MySQL
- 파이썬
- 북클럽
- Spring
- 스프링
- 그리디
- kotlin
- 알고리즘
- 릿코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |