Java (110) 썸네일형 리스트형 [Java/문법] 얕은 복사(Shallow Copy) vs. 깊은 복사(Deep Copy) 👉🏻 들어가며Java의 복사 방식: 깊은 복사(Deep Copy), 얕은 복사(Shallow Copy)✏️ 얕은 복사(Shallow Copy)정의객체의 주소값만 복사즉, 복사본과 원본이 같은 객체를 참조하게 됩니다.따라서 복사본을 수정하면 원본도 영향을 받습니다.사용 케이스읽기 전용 데이터를 공유할 때 사용합니다.성능 최적화가 필요한 경우나 대용량 데이터를 다룰 때 얕은 복사를 사용하면 메모리와 시간을 절약할 수 있습니다. (실제 데이터는 복사하지 않고 참조 주소만 복사하기에)✏️ 깊은 복사(Deep Copy)정의객체의 실제 값을 새로운 메모리 공간에 복사복사본과 원본이 서로 독립적인 객체가 됩니다.따라서 복사본을 수정해도 원본에 영향을 주지 않습니다.사용 케이스객체의 상태를 보존하거나 멀티스레드 환.. [Java/문법] String 클래스의 주요 메서드 ✏️ 주요 메서드메서드문법설명substring()String substring(int beginIndex)String substring(int beginIndex, int endIndex)문자열의 일부를 추출합니다 equals()boolean equals(Object obj)두 문자열의 내용이 동일한지 비교합니다 startsWith()boolean startsWith(String prefix)boolean startsWith(String prefix, int toffset)문자열이 지정된 접두사로 시작하는지 확인합니다 toCharArray()char[] toCharArray()문자열을 문자 배열로 변환합니다 length()int length()문자열의 길이를 반환합니다 charAt()char charAt.. [Java/문법] 배열의 length와 String 클래스의 length() 👉🏻 들어가며배열: 같은 타입의 데이터를 연속된 메모리 공간에 저장하는 자료구조고정된 크기, 연속된 메모리로 매시 지역성 + 접근 속도가 빠름, 인덱스를 통한 접근, length 속성으로 배열 길이 확인String: 문자열을 다루기 위한 Java의 클래스불변 객체, 문자열 연산 시 새로운 String 인스턴스 생성, String Constant Pool로 메모리 최적화, length() 메소드로 문자열 길이 확인✏️ 정리배열의 length고정된 크기를 나타내는 필드메모리에 직접 접근 → 값을 가져옴 (O(1))배열의 크기는 생성 후 불변, 따라서 단순한 속성으로도 충분합니다.String의 length()객체의 상태를 반환하는 메소드객체 내부 상태에 접근하는 방식 (불변 객체)length()는 메소드로.. [Java/문법] 최대공약수(GCD), 최소공배수(LCM), 여러 수의 최소공배수 구하기 ✏️ 최대공약수(GCD)유클리드 호제법을 사용해 구할 수 있습니다.b가 0이 될 때까지 a를 b로 나눈 나머지를 계산합니다.public static int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a%b);} ✏️ 최소공배수(LCM)최대공약수를 이용해 구할 수 있습니다.두 수의 곱 / 최대공약수로 나누면 최소공배수를 구할 수 있습니다.public static int lcm(int a, int b) { return a*b / gcd(a, b);} ✏️ 여러 수의 최소공배수배열의 첫 번째 요소부터 시작해서 순차적으로 각 요소와의 최소공배수를 구할 수 있습니다.public static int lcmOfArray(int[] arr) { int r.. [프로그래머스/181903] qr code (배열과 String 클래스의 문자 접근 방식이 다른 이유, .charAt()) ✏️ 문제 설명두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. ✏️ code🖥️ Java에서 배열과 String 클래스의 문자 접근 방식이 다른 이유👉🏻 메모리 관리와 객체 특성 차이에서 비롯됩니다.배열의 메모리 접근 방식배열: 메모리에 연속적으로 저장, 원소는 해당 데이터 타입의 크기만큼 메모리 공간을 차지합니다.=> 따라서 인덱스를 통해 직접적으로 메모리에 접근할 수 있습니다.int[] numbers = {1,2,3,4,5};=> numbers[2]는 세 번째 메모리 주소를 직접 참조합니다.String 클래스의 메모리 접근 방식.. [프로그래머스/181847] 0 떼기 (w. 정규표현식, String.replaceFirst()) ✏️ 문제 설명정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해 주세요.✏️ code💻 정규표현식 문법기본 특수 문자기호의미예제설명.임의의 한 문자a.ba, 어떤 문자 1개, b^문자열의 시작^abcabc로 시작하는 문자열$문자열의 끝xyz$xyz로 끝나는 문자열*앞 문자가 0번 이상 반복b*(b가 아예 없을 수도, 있을 수도 있음)abc => ' '(매칭됨)bbabc => bbabbbc => bbbb => bac => ' '(매칭됨)+앞 문자가 1번 이상 반복b+(b가 최소 1번 이상 있어야 함)abc => 매칭되지 않음bbabc => bbabbbc => bbbb => bac => 매칭되지 않.. [코드트리/NL] 중복되지 않는 정수 중 최대 (w. HashMap, Math.max) ✏️ 문제 설명N개의 정수가 주어졌을 때, 중복하여 등장하지 않는 정수 중 최댓값을 구하는 프로그램을 작성해보세요.✏️ code💻 HashMap정의key-value 쌍을 저장하는 컬렉션 클래스Hash Table을 기반으로 데이터 저장 및 검색을 제공합니다.java.util.HashMap 클래스는 Map 인터페이스를 구현하며, 중복 키를 허용하지 않고, 하나의 키에 하나의 값만 매핑됩니다.key-value 쌍을 저장할 때 내부적으로 배열과 연결리스트(또는 트리) 구조를 사용합니다. 이 구조를 버킷이라고 부릅니다.주요 특징동기화 되지 않음: 동시성 제어가 필요한 경우 ConcurrentHashMap이나 Collections.synchronizedMap()을 사용해야 합니다.순서 보장 없음: 입력 순서나 정.. [코드트리/NL] 연속부분수열일까 (w. 슬라이딩 윈도우 알고리즘) ✏️ 문제 설명n1개의 원소로 이루어져 있는 수열 A의 정보와, n2개의 원소로 이루어져 있는 수열 B의 정보가 주어졌을 때 수열 B가 수열 A의 연속부분수열인지를 판단하는 프로그램을 작성해보세요.수열 B가 수열 A의 원소들을 연속하게 뽑았을 때 나올 수 있는 수열이라면 연속부분수열이라 부릅니다.예를 들어 수열 A가 [1, 5, 2, 6] 일때 수열 B가 [5, 2]라면 수열 B는 수열 A의 연속 부분 수열이지만, 만약 수열 B가 [5, 6]이라면 연속 부분 수열이 아닙니다. ✏️ code💻 슬라이딩 윈도우 알고리즘이거 왜 써야 돼?슬라이딩 윈도우 알고리즘은 배열, 리스트 데이터 구조에서 연속된 부분 배열의 합, 최대값 등을 효율적으로 계산하는데 사용합니다.왜 효율적일까? 반복적인 계산을 줄여 시간 복.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음