Developing Myself Everyday
article thumbnail
JVM & JRE & JDK
Android/Java 2023. 5. 29. 11:05

자바를 공부해본 사람이라면 자바는 플랫폼에 독립적이고, WORA("Write Once Run Anywhere" - 한 번 작성하면 모든 곳에서 돌릴 수 있다)는 말을 들어봤을 것이다. public class Main { public static void main(String[] args) { for (int i = 1; i < 10; i++) { System.out.println("%d ", i); } } } 우리가 위와 같이 자바로 코드를 작성하면 컴퓨터는 이 내용을 바로 이해하지 못한다. 그래서 우리는 우리가 작성한 코드를 컴퓨터가 이해할 수 있게 바꿔주는 과정이 필요하다. 이걸 코드를 번역(Compile) 한다고 한다. 작성한 언어를 번역하느냐, 혹은 통역(Interpret) 하느냐에 따라 나뉠 수..

1744번: 수 묶기 - Kotlin
백준/그리디 2023. 5. 26. 15:37

1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 문제 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다. 예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열..

13913번: 숨바꼭질 4 - Kotlin
카테고리 없음 2023. 5. 26. 13:51

13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠..

Sealed Class
Android/Kotlin 2023. 5. 26. 11:19

때로는 우리가 프로그램에서 표현하고 싶은 개념이 몇 가지 정해진 변종의 집합으로 구성될 때가 있다. 이런 경우에는 똑같은 타입을 공유하는 미리 정의된 상수 집합을 표현하는 이넘 클래스를 사용해 표현할 수 있다. 이넘 클래스에 대한 설명은 아래의 게시글에서 참고할 수 있다. Enum Class 이넘 클래스란? 이넘 클래스는 미리 정의된 상수들로 이뤄진 제한된 집합을 표현하는 클래스다. 정수, 문자열 등과 비교할 때 이넘을 사용하면 어떤 값이 가능한 범위 안에 들어가 있는지를 일 everyday-develop-myself.tistory.com 하지만 어떤 경우에는 각 종류별로 애트리뷰트가 다를 수 있다. 한번 어떤 계산이 성공인지 실패인지를 표현하는 예제를 추상 클래스를 사용해 만들어 보겠다. 다만 성공인 ..

Enum Class
Android/Kotlin 2023. 5. 26. 10:16

이넘 클래스란? 이넘 클래스는 미리 정의된 상수들로 이뤄진 제한된 집합을 표현하는 클래스다. 정수, 문자열 등과 비교할 때 이넘을 사용하면 어떤 값이 가능한 범위 안에 들어가 있는지를 일일이 검사할 필요가 없으므로, 정해진 상수들로 이뤄진 집합을 타입 안전하게 아룰 수 있다. 다음은 간단한 이넘 클래스의 예시이다. enum class Result { SUCCESS, ERROR } fun Result.isSuccess() = this == Result.SUCCESS fun main() { println(Result.SUCCESS.isSuccess()) // true println(Result.ERROR.isSuccess()) // false } 추가로 이넘은 내부 클래스나 함수 본문에서 정의할 수 없다. ..

Abstract Class & Interface
Android/Kotlin 2023. 5. 25. 21:53

보통의 상위 클래스는 자기 자신에 대한 인스턴스를 만들 수 있는 타입들이다. 하지만 별도의 인스턴스가 있을 수 없고 구체적인 경우를 구현한 다른 클래스의 인스턴스만 만들 수 있는 추상적인 개념을 표현하는 클래스라면 인스턴스 생성은 바람직하지 않다. 그렇다면 추상적인 개념을 표현하려면 어떤 타입의 클래스를 사용해야 할까? 이 질문에 대한 대답이 바로 추상 클래스이다. 추상 클래스란? 추상 클래스는 자바에서도 지원하는 방식이다. 추상 클래스는 직접 인스턴스화 할 수 없고 다른 클래스의 상위 역할만 할 수 있는 클래스를 뜻한다. 클래스를 추상 클래스로 만들기 위해서는 abstract라는 변경자 키워드를 붙여야 한다. abstract class Entity(val name: String) // Success: ..

article thumbnail
개인정보 수집 유효기간 - Kotlin

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 20..

article thumbnail
1309번: 동물원
백준/DP 2023. 5. 23. 14:39

1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 문제 어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다. 이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리를 앓고 있다. 동물원 조련사의 머리가 아프지 않도록 우리가 2*N 배열에 사자를 배치하는 경우의 수가 몇 가지인지를 알아내는 프로그램을 작성해 주도록 하자. 사자를 한 마리도 배치하지 않는 경우도 하나의 경우의 수로 친다고 가정한다. 입력 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. 출력 첫째 줄에 사자를 배치하는 경우의 수를 9901로 나눈 ..