IT/Algorithm | Coding Test 19

[프로그래머스 64065] [Java] 튜플

1. 문자열 파싱: {{2},{2,1},{2,1,3},{2,1,3,4}} → [[2], [2,1], [2,1,3], [2,1,3,4]] 형태로 바꾸기2. 튜플 길이 순 정렬: 가장 짧은 배열부터 순서대로 3. LinkedHHashSet을 이용해 이미 포함된 원소는 제외하면서 추출📝 Solutionimport java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.LinkedHashSet;import java.util.List;import java.util.Set;public class 카카오_튜플 { public int[] solution(String s) { /* {{}} 제거, ..

[프로그래머스 12914] [Java] 멀리뛰기

짝수 홀수일는 나누고, 이진법 관련해서 푸는 문제인 줄 알았는데동적 계획법을 이용하는 문제였다...생각도 못했다.... 이전에 풀었던 피보나치 수 문제와 같은 것이었다... 2025.03.11 - [IT/JAVA] - [프로그래머스 12945] [Java] 피보나치 수>> 동적 프로그래밍 이용 ✏️ DP (Dynamic Programming) 동적 계획법- 복잡한 문제를 더 작은 하위 문" data-og-host="iamsh.tistory.com" data-og-source-url="https://iamsh.tistory.com/401" data-og-url="https://iamsh.tistory.com/401" data-og-image="https://scrap.kakaocdn.net/dn/k0PHP..

HashMap

HashMap- 자바의 컬렉션 프레임워크 중 하나로, 키와 값의 쌍으로 데이터를 저장하는 자료구조- 해시 테이블을 기반으로 하며, 키를 해시 함수로 해시 코드로 변환하여 값을 저장하고 검색한다- 키와 값의 쌍을 저장하며, 키는 중복될 수 없고, 값은 중복될 수 있다- 동일한 키로 값을 저장하면 기존 값이 덮어쓰여진다- 빠른 검색: 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있다- 키(Key)값을 통해서만 검색 가능  주요 메서드put(K key, V value)키와 값을 HashMap에 저장한다get(Object key)키에 해당하는 값을 반환한다. 키가 존재하지 않으면 null을 반환한다.remove(Object key)키에 해당하는 키-값 쌍을 제거한다containsKey(Object k..

[프로그래머스 138476] [Java] 귤 고르기

1. 같은 종류의 원소 갯수 구하기   =>  HashMap 이용2. 1번을 내림차순 정렬3. 갯수가 많은 것부터 k개 고르기✏️ Solution 1 import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;public class 귤고르기 { public static int solution(int k, int[] tangerine) { int sum = 0; // 고를 귤의 개수 int cnt = 0; // 최솟값 카운트 HashMap map = new HashMap(); for(int num : tangerine) { map.put(n..

[프로그래머스 12945] [Java] 피보나치 수

public class 피보나치수 { public static int solution(int n) { int[] f = new int[n+1]; f[0] = 0; f[1] = 1; for (int i=2; i >>> 동적 프로그래밍 이용 ✏️ DP (Dynamic Programming) 동적 계획법- 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법- 하위 문제의 결과를 저장하여 중복 계산을 피하고, 전체 문제를 효율적으로 해결한다.  DP와 재귀적 호출의 차이점 하향식(Top-down) 접근, 상향식(Bottom-up) 접근- 재귀적 호출은 주로 하향식 접근 방식을 사용한다.- 큰 문제를 작은 하위 문제로 나누어 해결하는 방식..

[프로그래머스 12932] [Java] 자연수 뒤집어 배열로 만들기

✏️ 1번 방법import java.util.Arrays;public class 프로그래머스_자연수뒤집어배열로만들기 { class Solution { public int[] solution(long n) { String str = String.valueOf(n); int end = str.length(); int[] answer = new int[end]; for(int i=0; i  String.valueOf()파라미터를 문자열로 형변환해주는 메서드 특징1. null값에 대한 처리가 가능하다  - 빈 값이 들어왔을 때 예외를 던지는 것이 아니라 "null" 문자열 반환해줌으로써 ..

[프로그래머스 181893] [Java] 배열 조각하기

import java.util.Arrays;public class PG181893_배열조각하기 { public int[] solution(int[] arr, int[] query) { for ( int i=0; i Arrays 클래스는 배열과 관련된 여러 메서드를 지원한다.*java.util 패키지에 포함되어 있으므로  import 필요import java.util.Arrays; Arrays.copyOf(복사할 배열, 복사할길이)복사할 배열의 인덱스 0부터 원하는 길이만큼 복사한다.복사할 배열이 복사할 길이보다 작으면 존재하지 않는 인덱스 이후의 값은 배열의 타입 기본값으로 초기화되어 복사된다. Arrays.copyOfRange(복사할 배열, 시작인덱스, 끝인덱스)복사할 배열의 ..

[백준 11720] [Java] 숫자의 합

풀이방법 1)public class BJ11720_숫자의합 { public int solution(String numbers) { int answer = 0; for (int i=0; ijava.lang.Character.getNumericValue(char)숫자 형태의 char형을 int형으로 변환그렇지 않으면 -1 반환 - Java 표준 라이브러리의 일부로, java.lang.Character 클래스에 포함된 기본 메서드- Java 표준 라이브러리는 Java 프로그래밍 언어와 함께 제공되는 기본클래스와 메서드의 집합이다. - 메서드 시그니처: public static int getNumericValue(char ch) - char 값이 숫자 형태(예: '0' ~ ..

배열, 리스트 (Java)

배열- 검색 연산은 빠르지만, 추가/삭제 연산이 느리다- 추가/삭제 : 새로운 데이터가 입력되거나 중간에서 특정 항목이 삭제될 경우 메모리 상의 주소를 모두 바꿔야 한다.- 배열의 검색  :  O(1)- 배열의 수정/삭제  :  O(ͷ)연결 리스트 Linked List- 배열과 같이 연속된 데이터를 저장하는 자료구조로서 추가/삭제 연산은 빠르지만, 검색이 느리다.- 아무 메모리에나 저장하고 기존 데이터에 부가 정보로 다음 데이터의 주소를 저장한다.- 검색  :  5번째 데이터를 찾고 싶다면 처음 주소지에서 다음 데이터의 주소를 찾는데 연산이 4번- 추가/삭제  :  기존 데이터 구조가 변하지 않고 데이터간의 주소 연결만 수정한다.- 리스트의 검색  :  O(ͷ)- 리스트의 추가/삭제  :  O(1)  기..

스택 Stack, 큐 Queue, 덱 Deque

스택 Stack한쪽 끝에서 자료를 넣거나 뺄 수 있는, 데이터를 제한적으로 접근할 수 있는 구조후입 선출  LIFO  Last In First Out깊이 우선 탐색  DFS  Depth First Search백트래킹 종류의 알고리즘에 효과적이다후입선출은 개념 자체가 재귀 함수 알고리즘 원리와 비슷하기 때문사용 예 )  브라우저의 뒤로가기,  실행 취소 (Ctrl + z),  재귀 함수,  역순 문자열 (문자열 거꾸로 뒤집기)스택의 자료구조는 삽입과 삭제시에 O(1),  탐색에는 O(n)의 시간복잡도를 가지게 된큐 Queue한 쪽에서는 데이터 삽입, 다른 한 쪽에서는 데이터의 삭제만 가능선입선출  FIFO  First In First Out  ( 먼저 삽입된 데이터가 가정 먼저 제거된다 )작업 스케줄링, ..

Stream vs IntStream

2025.01.03 - [IT/JAVA] - Stream StreamStream스트림(Stream)은 Java 8에서 도입된 기능으로, 컬렉션(예: 리스트, 배열) 등의 데이터 소스를 처리하고 변환하는 데 사용된다.스트림은 데이터의 흐름을 추상화한 것으로, 데이터를 필터링, 매iamsh.tistory.com   2025.01.04 - [IT/JAVA] - IntStream IntStreamIntStreamJava8의 Stream API에서 기본 타입 int를 처리하기 위해 제공되는 Stream 클래스박싱(Integer)없이 숫자 데이터를 효율적으로 처리할 수 있다int에 대한 순차 및 병렬 집계 연산 수행하는데 사용반iamsh.tistory.com  특징 StreamIntStream타입참조타입(Integ..

반응형