➜ Java

LinkedList(Single Linked List와 Double Linked List)란? / LinkedList 메서드 정리

LinkedList는 자료구조 중 하나로, 데이의 선형 리스트를 노드라는 개별적인 단위로 나타낸 것이다. 각 노드는 데이터와 그다음 노드에 대한 참조를 가지고 있다. 이렇게 서로 연결된 노드들의 체인을 통해 전체 데이터의 리스트를 표현한다. 연결리스트(Linked List) 하나의 개체를 이루는 노드가 연결되어 리스트를 이루는 구조이다. 노드에는 값을 담고 있는 데이터와 다음 노드를 가리키는 링크 정보를 저장하고 있다. 데이터에는 숫자, 문자열, 또다른 연결 리스트 등 다양한 형식을 가질 수 있다. 일반적으로 리스트의 맨 앞 노드를 헤드, 맨 마지막 노드를 테일이라고 한다. 이런 식으로 왼쪽엔 데이터 오른쪽엔 next링크 정보를 저장하고 있다. 배열과 연결리스트는 비슷해보이지만 다른 차이점을 가지고 있다..

➜ Java

HashMap이란? / 해시 충돌(Hash Collision) /HashMap 메서드 정리

HashMap이란 Java의 내장 자료구조로, "Map" 인터페이스를 구현한 클래스이다. 키(key)와 값(value)를 하나의 쌍으로 저장하는 자료구조인데 이러한 키와 값의 쌍을 엔트리(Entry)라고 합니다. HashMap의 특징 장점 키와 값의 쌍으로 이루어진 데이터 저장 중복 키 허용 안함 : 동일한 키로 데이터를 저장하면 기존의 값을 덮어쓴다 키에 대한 null 값 허용: 키가 null인 경우, 해당 키에 연결된 값은 HashMap의 0번째 버킷(Bucket)에 저장된다 단점 순서를 유지하지 않는다 : 데이터의 순서가 중요한 경우에는 LinkedHashMap을 사용하면 된다 멀티스레드 환경에서의 동시성 제어 : HashMap은 멀티스레드 환경에서 여러 스레드가 동시에 HashMap을 조작하는 것..

➜ Java

배열(Array) 이란 / 배열(Array) 관련 메서드 정리

배열은 동일한 타입의 여러 개의 데이터를 하나의 이름으로 그룹화하여 관리할 수 있는 구조이다. 배열의 각 요소는 인덱스라는 고유한 번호로 식별되며, 이 인덱스를 통해 배열의 데이터에 접근할 수 있다. 이런 방식은 반복문과 같은 제어 구조와 결합할 때 유용하다 배열이란? 배열은 동일한 데이터 타입의 여러 값을 담을 수 있는 자료 구조이다. 배열은 기본 데이터 타입(int, char 등) 또는 객체(문자열, 사용자 정의 객체 등)의 참조를 저장할 수 있다. 배열의 특징 동일한 타입의 데이터 저장 : 배열은 한 번 생성하면 그 타입 외의 다른 타입의 데이터를 저장할 수 없다. 고정된 크기 : 배열은 생성 시에 지정한 크기를 변경할 수 없다. 따라서 한 번 생성된 배열에 더 많은 데이터를 저장하려면 새로운 배열..

➜ 코딩 테스트/프로그래머스

프로그래머스 - qr code

class Solution { public String solution(int q, int r, String code) { String answer = ""; for(int i = r; i < code.length(); i += q){ answer += code.charAt(i); } return answer; } } 바로 전 편에서 배운 for문 커스텀하기 방법을 응용해서 쉽게 풀었다. 뿌듯하다 2023.07.12 - [➜ 코딩 테스트/프로그래머스] - 프로그래머스 - 세로 읽기 프로그래머스 - 세로 읽기 package Programmers; public class ProgrammingBasic { public static void main(String[] args) { String my_string ..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 세로 읽기

package Programmers; public class ProgrammingBasic { public static void main(String[] args) { String my_string = "ihrhbakrfpndopljhygc"; solution(my_string, 4, 2); } public static String solution(String my_string, int m, int c) { String[][] str = new String[my_string.length()/m][m]; int start = 0; for(int i = 0; i < str.length; i++){ str[i] = my_string.substring(start, start + m).split(""); star..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 문자열 뒤집기

class Solution { public String solution(String my_string, int s, int e) { StringBuilder sb = new StringBuilder(my_string); sb.replace(s, e + 1 , new StringBuilder(my_string.substring(s, e + 1)).reverse().toString()); return sb.toString(); } } 이제는 문자열 뒤집기 하면 공식같아보이는 존재이다..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 접두사인지 확인하기

class Solution { public int solution(String my_string, String is_prefix) { String[] str = new String[my_string.length()]; int start = my_string.length(); int result = 0; for (int i = 0; i < my_string.length(); i++) { str[i] = my_string.substring(0,start); start--; } for (int i = 0; i < str.length; i++) { if (str[i].equals(is_prefix)) { result = 1; } } if(result != 1){ result = 0; } return result..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 접미사인지 확인하기

class Solution { public int solution(String my_string, String is_suffix) { int start = 0; int result = 0; String[] suf = new String[my_string.length()]; for(int i = 0; i < my_string.length(); i++){ suf[i] = my_string.substring(start); start++; } for(int i = 0; i < suf.length; i++){ if(suf[i].equals(is_suffix)){ result = 1; } } if(result != 1){ result = 0; } return result; } } 내가 풀은 코드 class Solu..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 접미사 배열

package Programmers; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ProgrammingBasic { public static void main(String[] args) { String my_string = "banana"; solution(my_string); } public static List solution(String my_string) { List list = new ArrayList(); int start = 0; for(int i = 0; i < my_string.length(); i++){ list.add(my_string.substring(start..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 부분 문자열 이어 붙여 문자열 만들기

package Programmers; public class ProgrammingBasic { public static void main(String[] args) { String[] my_strings = {"progressive", "hamburger", "hammer", "ahocorasick"}; int[][] parts = {{0,4}, {1, 2}, {3, 5}, {7,7}}; solution(my_strings, parts); } public static String solution(String[] my_strings, int[][] parts) { String answer = ""; for(int i = 0; i < parts.length; i++){ answer += my_strings[..

강맹석
맹석의 IT노트 & 일상 기록