언어/자바(JAVA)
-
어떠한 값이 복사되는데 크게 shallow copy(얕은 복사)와 deep copy(깊은 복사) 두 가지가 있습니다 간단히 말하자면 얕은복사는 한쪽에서 수정이 발생되면 다른쪽에도 영향을 끼쳐 같아지게 됩니다. 복사한 배열에서 어떠한 값을 수정하면 원래 배열에도 변경된 값이 들어가게 됩니다. 다음 예제를 봅시다 - 1차원 배열의 경우 int[] a = new int[1]; a[0] = 1; int[] b = a; // 값 변경 b[0] = 2; // 2,2 출력 System.out.println(a[0] + ", " + b[0]); 1차원 배열의 얕은 복사는 대입 연산을 이용하는 것입니다. 대입 연산을 이용해서 복사하게 되면 위의 경우 b배열의 값을 변경했을때 a 배열의 값도 변경됩니다. - 2차원 배열의..
자바(java) 배열의 깊은 복사(deep copy)와 얕은 복사 완벽정리(1차원 배열, 2차원 배열, 객체 배열 복사)어떠한 값이 복사되는데 크게 shallow copy(얕은 복사)와 deep copy(깊은 복사) 두 가지가 있습니다 간단히 말하자면 얕은복사는 한쪽에서 수정이 발생되면 다른쪽에도 영향을 끼쳐 같아지게 됩니다. 복사한 배열에서 어떠한 값을 수정하면 원래 배열에도 변경된 값이 들어가게 됩니다. 다음 예제를 봅시다 - 1차원 배열의 경우 int[] a = new int[1]; a[0] = 1; int[] b = a; // 값 변경 b[0] = 2; // 2,2 출력 System.out.println(a[0] + ", " + b[0]); 1차원 배열의 얕은 복사는 대입 연산을 이용하는 것입니다. 대입 연산을 이용해서 복사하게 되면 위의 경우 b배열의 값을 변경했을때 a 배열의 값도 변경됩니다. - 2차원 배열의..
2020.02.11 -
이번에 백준 14888번 연산자 끼워넣기라는 문제를 몇달전에 풀었었다가 이번에 2번째로 다시 풀어보았습니다. 그때 보다는 알고리즘 푸는 실력이 좀 늘었다 생각하고 풀었는데 속도가 훨씬 늦게나온거에요 그래서 코드 어느부분이 다른거지??? 하고 봤는데 기본 로직은 거의 같았습니다. 그래서 이것 저것 코드를 넣었다 뺐다 해보면서 깨달은 것이 있었습니다. 예전 코드는 ArrayList의 최대 최소 값을 구하기 위해서 Collections.max와 Collections.min을 사용했었습니다. 이번에 사용한 느린 코드는 Collections.sort를 통해 sorting을 하고 0번째와 마지막 index를 참조하여 최대 최소를 구했습니다. 다음과 같이 말이죠 // 최댓갑 구하기 // sorting하고 마지막 인덱..
자바 Collections.sort를 이용한 최대,최소 값과 Collections.min,max 속도 비교이번에 백준 14888번 연산자 끼워넣기라는 문제를 몇달전에 풀었었다가 이번에 2번째로 다시 풀어보았습니다. 그때 보다는 알고리즘 푸는 실력이 좀 늘었다 생각하고 풀었는데 속도가 훨씬 늦게나온거에요 그래서 코드 어느부분이 다른거지??? 하고 봤는데 기본 로직은 거의 같았습니다. 그래서 이것 저것 코드를 넣었다 뺐다 해보면서 깨달은 것이 있었습니다. 예전 코드는 ArrayList의 최대 최소 값을 구하기 위해서 Collections.max와 Collections.min을 사용했었습니다. 이번에 사용한 느린 코드는 Collections.sort를 통해 sorting을 하고 0번째와 마지막 index를 참조하여 최대 최소를 구했습니다. 다음과 같이 말이죠 // 최댓갑 구하기 // sorting하고 마지막 인덱..
2020.02.10 -
안녕하세요 호호만두에요 이번에는 자바에서 큰 정수를 입력받을 수 있는 BIgInteger에 대해서 알아볼게요 BigInteger가 필요한 경우 알고리즘 문제를 풀다 보면 가끔씩 큰 수를 이용해야 할 경우가 있어요 왜냐하면 int형의 최대 범위는 21억 정도 그래서 long형을 사용하면 920경 정도... 보통 long형으로도 충분하지만 그 보다 더 큰 수를 필요로 할 경우가 있어요. 예를 들어 피보나치 수나 팩토리얄을 구할 경우!! 그럴 때 자바에서 편하게 구할 수 있게 해주는게 BigInteger class 입니다 이는 java.math.BigInteger 를 import하여 사용할 수 있어요 BigInteger 선언과 연산 BigInteger 선언 import java.math.BigInteger; ..
자바(java) 큰 정수 입력 받기 :: BigInteger 선언, 덧셈, 뺄셈, 곱셈, 나눗셈 정리안녕하세요 호호만두에요 이번에는 자바에서 큰 정수를 입력받을 수 있는 BIgInteger에 대해서 알아볼게요 BigInteger가 필요한 경우 알고리즘 문제를 풀다 보면 가끔씩 큰 수를 이용해야 할 경우가 있어요 왜냐하면 int형의 최대 범위는 21억 정도 그래서 long형을 사용하면 920경 정도... 보통 long형으로도 충분하지만 그 보다 더 큰 수를 필요로 할 경우가 있어요. 예를 들어 피보나치 수나 팩토리얄을 구할 경우!! 그럴 때 자바에서 편하게 구할 수 있게 해주는게 BigInteger class 입니다 이는 java.math.BigInteger 를 import하여 사용할 수 있어요 BigInteger 선언과 연산 BigInteger 선언 import java.math.BigInteger; ..
2020.01.24 -
안녕하세요 호호만두에요 이번에는 자바로 알고리즘 문제 풀때 편하게 사용할 수 있는 자료구조 큐(queue)에 대해서 알아볼게요!! 우선 자바에서 큐를 사용하려면 다음과 같이 import를 하면 됩니다 import java.util.Queue; import java.util.LinkedList; 큐는 LinkedList를 이용해서 하더라구요 그래서 Queue와 LinkedList를 모두 import 해줘야 해요 이번에는 Queue 변수를 만들어 봅시다 Queue queue = new LinkedList(); // queue 선언, linkedlist 이용 위와 같이 선언해주면 되요. 저는 Integer 타입의 값을 담는 queue를 선언했어요 물론 다른 타입으로도 선언가능합니다 그러면 이제 queue에 값..
[자바(Java)] 자료구조 큐(queue) 사용방법안녕하세요 호호만두에요 이번에는 자바로 알고리즘 문제 풀때 편하게 사용할 수 있는 자료구조 큐(queue)에 대해서 알아볼게요!! 우선 자바에서 큐를 사용하려면 다음과 같이 import를 하면 됩니다 import java.util.Queue; import java.util.LinkedList; 큐는 LinkedList를 이용해서 하더라구요 그래서 Queue와 LinkedList를 모두 import 해줘야 해요 이번에는 Queue 변수를 만들어 봅시다 Queue queue = new LinkedList(); // queue 선언, linkedlist 이용 위와 같이 선언해주면 되요. 저는 Integer 타입의 값을 담는 queue를 선언했어요 물론 다른 타입으로도 선언가능합니다 그러면 이제 queue에 값..
2019.12.04 -
안녕하세요 호호만두에요 이번에는 자바에서 스택(stack)을 사용하는 방법에 대해서 알아볼게요!! 저는 처음에 자바에 스택이 따로 없는 줄 알았는데 c++과 같이 기본으로 제공되더라구요 그래서 알고리즘문제 풀때마다 arraylist만 사용하거나 스택이 필요할때면 아 이걸 다 구현해야 되나... 싶었는데 머리가 나쁘면 몸이 고생 ㅠㅠㅠ 아무튼 !! 자바의 스택 사용 방법에 대해 알아봅시다!! stack class는 java.util에 있어요 import java.util.Stack; 위 처럼 import 문을 달아주면 stack을 자바에서 사용하실 수 있어요 자바에서 stack 변수 선언은 다음과 같이 합니다 저는 Integer 값을 담는 stack을 만들었어요 안에 다른 타입을 써서 만들 수도 있답니다 ..
[자바(Java)] 자료구조 스택(Stack ) 사용방법안녕하세요 호호만두에요 이번에는 자바에서 스택(stack)을 사용하는 방법에 대해서 알아볼게요!! 저는 처음에 자바에 스택이 따로 없는 줄 알았는데 c++과 같이 기본으로 제공되더라구요 그래서 알고리즘문제 풀때마다 arraylist만 사용하거나 스택이 필요할때면 아 이걸 다 구현해야 되나... 싶었는데 머리가 나쁘면 몸이 고생 ㅠㅠㅠ 아무튼 !! 자바의 스택 사용 방법에 대해 알아봅시다!! stack class는 java.util에 있어요 import java.util.Stack; 위 처럼 import 문을 달아주면 stack을 자바에서 사용하실 수 있어요 자바에서 stack 변수 선언은 다음과 같이 합니다 저는 Integer 값을 담는 stack을 만들었어요 안에 다른 타입을 써서 만들 수도 있답니다 ..
2019.12.03 -
파이썬에도 편리한 collections 라이브러리가 있었던것 같은데요 자바에도 collections라는 라이브러리?가 있더라구요 collection Framework라고 부른다고 해요 이를 이용해서 List, Set, Map의 최소값과 최대값을 쉽게 구할 수 있어요 저는 ArrayList의 최소값과 최대값을 구해봤어요 언어는 자바(JAVA)로 했답니다!! import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { ArratList arrList = new ArrayList(); int min, max; // ArrayList에 값 추가 arrList.add(1); ..
[자바(JAVA)] ArrayList, Map의 최소값 구하기 (collection framework)파이썬에도 편리한 collections 라이브러리가 있었던것 같은데요 자바에도 collections라는 라이브러리?가 있더라구요 collection Framework라고 부른다고 해요 이를 이용해서 List, Set, Map의 최소값과 최대값을 쉽게 구할 수 있어요 저는 ArrayList의 최소값과 최대값을 구해봤어요 언어는 자바(JAVA)로 했답니다!! import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { ArratList arrList = new ArrayList(); int min, max; // ArrayList에 값 추가 arrList.add(1); ..
2019.10.10