목록언어 (13)
It's easy, if you try
Final final은 메소드, 클래스, 변수에 붙여서 사용합니다. 1. Immutable 변수 final 변수 선언 시 추후에 수정이 불가합니다. final int COOKIE_SIZE = 3; 추후에 수정할 수 없기 때문에 초기화가 필수입니다. 2. final 함수 메소드 오버라이트를 제한합니다. 3. final 클래스 상속이 불가능한 클래스가 됩니다. Wrapper Class 도 final 클래스에 해당됩니다. Static과의 차이점 static은 모든 인스턴스에 공통된 값을 유지합니다. 또한, 메모리에 한번 할당되어 프로그램이 종료될 때 해제됩니다. static 또한 메소드, 클래스, 변수에 사용될 수 있습니다. static 변수는 정적 필드, static 메소드는 정적 메소드라고도 합니다. 이 ..
Map map = new HashMap(); map.put("a", 3); map.put("b", 2); map.put("c", 1); List entryList = new LinkedList(map.entrySet()); entryList.sort(((o1, o2) -> map.get(o1.getKey()) - map.get(o2.getKey()))); for(Map.Entry entry : entryList){ System.out.println("key : " + entry.getKey() + ", value : " + entry.getValue()); } //key : c, value : 1 //key : b, value : 2 //key : a, value : 3

👊 코드 개선을 위한 Collection 사용 목차 Collection의 장단점 실습 (1) 실습 (2) 1. Collection의 장단점 위와 같이 클래스 A와 B가 있을 때, 간결성과 가독성면에서는 B가 우수합니다. 그러나, 힙 메모리 사용량이나 함수 실행 속도 면에서는 A가 더 우수합니다. 📌 따라서, 장/단점이 있기 때문에 어느 방식을 적용할지는 요구사항, 메모리 사용량, 가독성, CPU 연산량 등 다각도로 고려해야합니다. 2. 실습 (1) 📌switch ~ case ~ 문을 통해 작성한 현재 달의 날 수 출력 프로그램을 Collection을 사용해 개선해 봅시다. 개선 전 import java.util.*; import java.text.SimpleDateFormat; public class 코..
슬라이싱 (slicing) 기본형태 : array[start : end : step] start : 슬라이싱을 시작할 시작 위치 end: 슬라이싱을 끝낼 위치로 end는 포함하지 않는다. step: stride라고도 하며 몇개씩 끊어서 가져올지를 정한다. 양수,음수 모두 가능 a[ start: ] : start 위치부터 끝까지 가져오기 a[ end : ]: 시작점부터 end 위치까지 모두 가져오기 a[ start : end ] : start위치 부터 end 위치까지 모두 가져오기 a[ start : end : step ] (step이 양수 일 때) : 오른쪽으로 step만큼 이동하면서 가져온다. a[ start: end : step](step이 음수일 때): 왼쪽으로 step만큼 이동하면서 가져온다...
목차 1. Collections 의 Sort 2. Comparable 3. Comparator 4. Comparator 익명의 내부 클래스 사용하기 5. 람다식으로 표현하기 Collections.sort 사용하기 Collections.sort() 를 이용해 객체를 오름차순 또는 내림차순으로 정렬할 수 있다. Arrays.sort()의 경우 Collection(List) 정렬은 불가능하다. 배열 객체의 경우만 가능하다.(기본은 오름차순, Arrays.sort(배열 이름, Collections.reverseOrder()); ==> 내림차순) 만약 사용자가 정렬 조건을 다시 정의하고 싶다면 1. Comparable (구현, compareTo 메소드 오버라이딩) 2. Comparator (구현, compare ..
1차원배열 정렬 좌에서 우로 정렬: np.sort(x) 거꾸로 정렬: np.sort(x)[::-1] , x[np.argsort(-x)] 2차원배열 정렬 열 축 기준(좌에서 우로)으로 정렬 : np.sort(x, axis=1) 행 축 기준(위에서 아래로)으로 정렬: np.sort(x, axis=0) 행 축 기준(위에서 아래로)으로 거꾸로 정렬: np.sort(x, axis=0)[::-1] 예시 np.sort(x) x = np.array([3,5,1]) --- 정렬 후 ---> array([1,3,5]) np.sort(x)[::-1] , x[np.argsort(-x)] x = np.array([3,5,1]) --- 정렬 후 ---> array([5,3,1]) np.sort(x, axis=1) x = np.a..
올림: ceil 내림: floor 반올림: round 예시 import math print(math.ceil(100/33)) # 4 print(math.ceil(0.3)) # 1 print(math.floor(100/33)) # 3 print(math.floor(0.6)) # 0 print(round(98/6)) #16 (몫: 16 나머지: 2 -> 나머지가 6의 반인 3보다 작은 값이기 때문에 내림 !) print(round(100/6)) # 17 (몫: 16 나머지: 4 -> 나머지가 6의 반인 3보다 큰 값이기 때문에 올림!) print(round(0.6)) # 1 최초 발행 날짜: 2020-08-27
정의 Combinations (조합 nCr) : 하나의 리스트에서 모든 조합을 계산해야할 때 사용한다. Permutations (순열 nPr) 과의 차이 순열은 순서가 바뀐 경우도 포함하고, 조합은 순서가 바뀐 경우는 포함하지 않는다(순서 상관 없음). 예를 들어 1,2,3 으로 이루어진 리스트에서 순열은 (1,2),(1,3),(2,3),(2,1),(3,1),(3,2) 조합은 (1,2),(1,3),(2,3) 이다. 사용 방법 from itertools import combinations # itertools 중 combinations를 import items = ['1','2','3'] c = list(combinations(items,2)) # 2가지 조합으로 이루어질 수 있는 모든 경우의 수를 l..
문자열 잘라내기 'hello world' 에서 일부만 자르고 싶을 때, >>> a = 'hello world' >>> a[0:5] 'hello' >>> a[6:11] 'world' a[0:5] 와 a[:5] 는 같은 문자열('hello')을 출력한다. 또한 a[6:11] 과 a[6:] 또한 같은 문자열('world')을 출력한다. 음수 인덱싱 >>> a[6:-2] 'wor' a[6:-2]에서 -2는 뒤에서 2번째까지 잘라내겠다는 것을 의미한다 따라서 맨 뒤에 문자 ld가 잘린것을 볼 수 있다. 참고 최초 발행 날짜: 2020-03-07
순열 서로 다른 n개의 원소 중 r개를 순서 있게 골라낸 것을 순열(Permutation)이라고 한다. 아래 코드는 주사위를 3번 던졌을 때 나올 수 있는 경우의 수이다. (중복 X, 순서 O) // 순열 : nPr ==> n! private static void dice2(int cnt) { if(cnt == N) { totalCnt++; System.out.println(Arrays.toString(numbers)); return; } for(int i =1; i n^r private static void dice1(int cnt) { if(cnt == N) { // 기저 조건 totalCnt++; System.out.println(Arrays.toString(numbers)); return; } f..