본문 바로가기

전체 글182

배열 만들기 2 문제 설명 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. 제한사항 1 ≤ l ≤ r ≤ 1,000,000 입출력 예 l r result 5 555 [5, 50, 55, 500, 505, 550, 555] 10 20 [-1] import java.util.ArrayList; class Solution { public int[] solution(int l, int r) { ArrayList arrList = new ArrayList(); for(int i=l; i 2024. 4. 18.
수열과 구간 쿼리 4 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e 2024. 4. 18.
병에 걸렸다. '질환에 걸렸다'는 너무 이상한 제목 같아서 '병에 걸렸다'를 제목에 걸었다. 난 '비정형 안면통'을 앓고 있다. 증상은 비정형 안면통과 삼차신경통을 오간다. 음식을 씹지 못 한다. 유동식만 먹을 수 있다. 차라리 죽여달라고 할 만큼 아파서 119를 부르고 응급실을 가고 결국 본가로 돌아온 게 월요일 새벽. 병원에서 진단 받은 것이 월요일. 증상을 관찰한 게 화요일. 오늘이 벌써 수요일이다. 진통제를 먹고 있지만 많이 아프다. 얼마나 아프냐면, 일에 집중할 수 없다. 부모님은 개발을 그만두라고 하신다. 그냥 몸으로 하는 일로 먹고 살라고 하신다. 나는 요즘 정말로 많은 생각을 하고 있다. 1시간 걷고 왔는데도 엄청나게 피로하다. 본가로 돌아온 후 하루 중 별로 한 일이 없는 것 같다. 그런데도 시간이 매.. 2024. 4. 17.
수열과 구간 쿼리 2 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다. 각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요. 단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e value>k) .min(); answer[i] = result.isPresent() ? result.getAsInt() : -1; } .. 2024. 4. 17.
수열과 구간 쿼리 3 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다. 각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ i 2024. 4. 17.
수 조작하기 2 문제 설명 정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다. "w" : 수에 1을 더한다. "s" : 수에 1을 뺀다. "d" : 수에 10을 더한다. "a" : 수에 10을 뺀다. 그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요. 제한사항 2 ≤ numLog의 길이 ≤ 100,000 -100,000 ≤ numLog[.. 2024. 4. 17.
주사위 게임 2 문제 설명 1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다. 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다. 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다. 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다. 세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요. 제한사항 a, b, c는 1이상 6이하의 정수입니다. 입출력 예 a b c result 2 6 1 9 5 3 3 473.. 2024. 4. 16.
등차수열의 특정한 항만 더하기 문제 설명 두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ a ≤ 100 1 ≤ d ≤ 100 1 ≤ included의 길이 ≤ 100 included에는 true가 적어도 하나 존재합니다. 입출력 예 a d included result 3 4 [true, false, false, true, true] 37 7 1 [false, false, false, true, false, false, false] 10 import java.uti.. 2024. 4. 16.
자바 - List - ArrayList 뽀개기 - 2 그럼 코테에서 ArrayList는 어떻게 쓸 수 있을까? 1. 초기화 및 선언 ArrayList를 선언하고 초기화하는 기본적인 방법들입니다: import java.util.ArrayList; // 기본적인 선언 ArrayList list = new ArrayList(); // 초기 용량 지정 ArrayList listWithCapacity = new ArrayList(100); // 다른 컬렉션으로부터 초기화 ArrayList listFromOther = new ArrayList(Arrays.asList(1, 2, 3, 4, 5)); 주의: Arrays.asList(1, 2, 3, 4, 5) 2024. 4. 14.
자바 - List - ArrayList 뽀개기 - 1 ArrayList는 Java Collections Framework의 일부로, List 인터페이스를 구현하는 동적 배열이다.ArrayList는 요소를 배열로 관리하며, 배열이 꽉 찼을 때 자동으로 크기를 늘린다.이는 Java에서 가장 많이 사용되는 컬렉션 중 하나로, 데이터를 인덱스 기반으로 접근할 수 있어 임의 접근(random access)이 빠르다.요약: 길이가 변하는 동적 '배열'. 배열이 다 차면 자동으로 커진다. index 사용이 가능하다. ArrayList의 핵심 특징동적 배열 구현: 위에 언급함.데이터 접근: 인덱스 덕에 검색에서는 O(1)이다. 배열의 끝에 데이터를 추가하거나 삭제해도 평균적으로 O(1)이다. 중간에 데이터를 추가 또는 삭제하면 O(n)이다. 여기서 n은 해.. 2024. 4. 14.
자바에서 사용할 수 있는 자료구조의 종류 자바에서 사용할 수 있는 자료구조는 크게 자바 표준 라이브러리의 일부인 Java Collections Framework (JCF)와 그 외 추가적인 자료구조들로 나눌 수 있다.  콜렉션부터 보자.주요 콜렉션 인터페이스와 그를 구현한 클래스는 다음과 같다. List - 순서가 있고 중복을 허용하는 컬렉션:ArrayList: 배열 기반의 리스트로, 인덱스를 통한 빠른 접근이 가능하다.LinkedList: 이중 연결 리스트로, 요소의 추가와 제거가 빈번할 때 유용합니다. Vector: 스레드 안전을 제공하는 동기화된 리스트입니다.Stack: LIFO 데이터 구조를 제공하는 Vector의 하위 클래스입니다.Set - 중복을 허용하지 않는 컬렉션:HashSet: 해시 테이블을 사용하여.. 2024. 4. 14.
자바 자료구조 학습 중 궁금한 점 1. 배열은 왜 콜렉션에 없는가?콜렉션 프레임워크는 기본적으로 동적으로 크기가 조절되고, 제네릭을 통해 타입 안정성을 강화하고, 다양한 유틸리티 메서드를 제공해 개발자가 데이터를 보다 효율적으로 처리할 수 있게 돕는 걸 목표로 한다. 그런데 배열이 동적 크기 조절이 되나?배열은 만들어질 때 크기가 고정된다.한 번 생성된 후에는 크기를 변경할 수 없다.데이터를 동적으로 추가하고 제거할 수 있는 유연성을 제공하는 자바 콜렉션 프레임워크에 있는 게 더 이상한 거다.게다가 배열은 고급 기능이나 메서드를 제공하지도 않는다. 배열에는 메서드가 없다(Arrays 말하는 거 아니다. int[] 이런 거 말하는 거다.). 기본 데이터 타입 배열을 가지고 할 수 있는 건 고작 해 봐야 length를 사용.. 2024. 4. 14.