분류 전체보기
-
모던 php 를 사용할 때는 다양한 타입을 지원했고 따로 명시해 줄 필요도 없었다. Java를 다루면서 데이터 형식을 명확히 해야하고 이에 대한 규제가 정확했다. 이에 대해 정확히 알아보고자 이 글을 작성한다.🟢 제네릭(Generic)제네릭(Generic)는 '일반적인', ' 데이터 타입을 일반화함'이라는 뜻이다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시 미리 지정한다고 이해할 수 있다. 우리가 어떠한 자료구조를 사용한다고 가정해보자, List, Queue, LinkedList 와 같은 것들. String 타입 뿐만 아니라 Integer 타입도 지원하고 싶은 경우에 타입 별로 클래스나, 변수들을 생성하진 않을 것이고 이는 비효율적이다. 이러한 문제를 해결하기 위해 우리는 제네릭이라는 것..
[Java] 제네릭(Generic) 은 무엇인가모던 php 를 사용할 때는 다양한 타입을 지원했고 따로 명시해 줄 필요도 없었다. Java를 다루면서 데이터 형식을 명확히 해야하고 이에 대한 규제가 정확했다. 이에 대해 정확히 알아보고자 이 글을 작성한다.🟢 제네릭(Generic)제네릭(Generic)는 '일반적인', ' 데이터 타입을 일반화함'이라는 뜻이다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시 미리 지정한다고 이해할 수 있다. 우리가 어떠한 자료구조를 사용한다고 가정해보자, List, Queue, LinkedList 와 같은 것들. String 타입 뿐만 아니라 Integer 타입도 지원하고 싶은 경우에 타입 별로 클래스나, 변수들을 생성하진 않을 것이고 이는 비효율적이다. 이러한 문제를 해결하기 위해 우리는 제네릭이라는 것..
2024.04.26 -
🇱🇻3️⃣, 연속 펄스 부분 수열의 합[161988] 🧀 프로세스 문제 설명 어떤 수열의 연속 부분 수열에 같은 길이의 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만들려 합니다. 펄스 수열이란 [1, -1, 1, -1 …] 또는 [-1, 1, -1, 1 …] 과 같이 1 또는 -1로 시작하면서 1과 -1이 번갈아 나오는 수열입니다. 예를 들어 수열 [2, 3, -6, 1, 3, -1, 2, 4]의 연속 부분 수열 [3, -6, 1]에 펄스 수열 [1, -1, 1]을 곱하면 연속 펄스 부분수열은 [3, 6, 1]이 됩니다. 또 다른 예시로 연속 부분 수열 [3, -1, 2, 4]에 펄스 수열 [-1, 1, -1, 1]을 곱하면 연속 펄스 부분수열은 [-3, -1, -2, 4]이 됩니다. ..
[Java][프로그래머스] 161988, 연속 펄스 부분 수열의 합🇱🇻3️⃣, 연속 펄스 부분 수열의 합[161988] 🧀 프로세스 문제 설명 어떤 수열의 연속 부분 수열에 같은 길이의 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만들려 합니다. 펄스 수열이란 [1, -1, 1, -1 …] 또는 [-1, 1, -1, 1 …] 과 같이 1 또는 -1로 시작하면서 1과 -1이 번갈아 나오는 수열입니다. 예를 들어 수열 [2, 3, -6, 1, 3, -1, 2, 4]의 연속 부분 수열 [3, -6, 1]에 펄스 수열 [1, -1, 1]을 곱하면 연속 펄스 부분수열은 [3, 6, 1]이 됩니다. 또 다른 예시로 연속 부분 수열 [3, -1, 2, 4]에 펄스 수열 [-1, 1, -1, 1]을 곱하면 연속 펄스 부분수열은 [-3, -1, -2, 4]이 됩니다. ..
2024.04.26 -
인터페이스를 사용하는 이유는 다양하다. 그치만 내가 어떻게 답변할 수 있을 것인가 Intro 다른 언어에서도 인터페이스를 사용해본 경험이 있지만Java 를 공부하는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각이 들었다. 하나하나 알아보자. 🟢 인터페이스(interface)자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우, 메소드 출처의 모호성 등 여러가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이..
[Java] Java 에서 인터페이스는 왜 쓰는 것일까인터페이스를 사용하는 이유는 다양하다. 그치만 내가 어떻게 답변할 수 있을 것인가 Intro 다른 언어에서도 인터페이스를 사용해본 경험이 있지만Java 를 공부하는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각이 들었다. 하나하나 알아보자. 🟢 인터페이스(interface)자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우, 메소드 출처의 모호성 등 여러가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이..
2024.04.25 -
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🇱🇻3️⃣, 입국심사 [43238] 🧀 프로세스 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국..
[Java][프로그래머스] 43238, 입국심사프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🇱🇻3️⃣, 입국심사 [43238] 🧀 프로세스 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국..
2024.04.25 -
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🇱🇻3️⃣, 징검다리 건너기[64062] 🧀 프로세스 [문제 설명]카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두 숫자가 적혀 있으며 디딤돌의 숫자는 한 번 밟을 때마다 1씩 줄어듭니다. 디딤돌의 숫자가 0이 되면 더 이..
[Java][프로그래머스] 64062, 징검다리 건너기프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🇱🇻3️⃣, 징검다리 건너기[64062] 🧀 프로세스 [문제 설명]카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두 숫자가 적혀 있으며 디딤돌의 숫자는 한 번 밟을 때마다 1씩 줄어듭니다. 디딤돌의 숫자가 0이 되면 더 이..
2024.04.24 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 42627, 디스크 컨트롤러 난이도 : Lv 3️⃣ 🧀 프로세스 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수..
[Java][프로그래머스] 42627, 디스크 컨트롤러프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 42627, 디스크 컨트롤러 난이도 : Lv 3️⃣ 🧀 프로세스 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수..
2024.04.23 -
Java 의 실행방식과 동작원리, 그에 기반이 되는 JVM 에 대해 파헤쳐보자. Intro Java 를 사용는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각으로 이 글을 작성한다. JVM, Java Virtual Machine jvm 을 탐구하기 이전에 가상화에 대해 먼저 알아두면 좋을 것 같아서 정리했다. 가상화 (Virtualization) 란 컴퓨터 리소스의 추상화, 물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호작용 하는 방식으로 감추는 기술이다. 💡가상머신, 하이퍼바이저, 컨테이너 가상머신(가상화 라는 용어 사용) - 단일 하드웨어에 여러 컴퓨팅 환경을 만..
[Java] JVM 이란Java 의 실행방식과 동작원리, 그에 기반이 되는 JVM 에 대해 파헤쳐보자. Intro Java 를 사용는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각으로 이 글을 작성한다. JVM, Java Virtual Machine jvm 을 탐구하기 이전에 가상화에 대해 먼저 알아두면 좋을 것 같아서 정리했다. 가상화 (Virtualization) 란 컴퓨터 리소스의 추상화, 물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호작용 하는 방식으로 감추는 기술이다. 💡가상머신, 하이퍼바이저, 컨테이너 가상머신(가상화 라는 용어 사용) - 단일 하드웨어에 여러 컴퓨팅 환경을 만..
2024.04.23 -
49189, 가장 먼 노드 난이도 : Lv 3️⃣ 🧀 프로세스 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 ..
[Java][프로그래머스] 49189, 가장 먼 노드49189, 가장 먼 노드 난이도 : Lv 3️⃣ 🧀 프로세스 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 ..
2024.04.22