전체 글 318

코틀린 문법정리

nullSafe Call과 Elvis 연산자nullable 타입을 다룰 때 사용된다.val str: String? = "ABC"var length;length = str.length // 불가능length = str?.length // 가능length = str?.length ?: 0 // null이 아니면 길이 null이면 0early return에도 사용할 수 있다.fun calculate(number: Long?): Long{ number ?: return 0 // 로직}단언 연산자nullable 타입이지만 개발자가 null이 아님을 확신할 때 사용된다.val nullableValue: String? = "Hello, Kotlin"val nonNullValue: String = ..

JVM/Kotlin 2023.12.13

당신의 뇌는 최적화를 원한다 - 엔도르핀

엔도르핀 엔도르핀은 주로 심한 스트레스 상황이나 긴장을 푼 상태에서 분비되어 진통 효과를 내며, 이 효과는 모르핀에 비해 6.5배 강력하다. 엔도르핀은 주로 심리적인 스트레스를 해소하는 데 기여하며, 특히 부상, 질병, 달리기 등으로 인한 고통이나 괴로움을 행복으로 전환하여 몸과 마음을 지켜주는 역할을 한다. 이 과정에서 엔도르핀은 종종 '뇌 내 마약'으로 불리기도 한다. 또한, 엔도르핀의 분비는 행복감과 황홀감을 유발하며, 각성 작용이 있어 기억력, 상상력, 주의력, 집중력을 향상하지만, 과도한 분비는 환각을 유발할 수 있다. 엔도르핀과 알파파 엔도르핀은 '치유되었다', '긴장이 풀렸다'라고 느끼는 순간에도 분비된다. 몸과 마음이 편안하면 뇌에서 알파파가 원활하게 나온다. 알파파가 나오면 엔도르핀이 분..

도서 2023.12.13

단순 선택 정렬, 단순 삽입 정렬, 이진 삽입 정렬

단순 선택 정렬 단순 선택 정렬은 가장 작은 요소부터 선택해 알맞은 위치로 옮겨서 순서대로 정렬하는 알고리즘이다. 오름차순을 예를 들어 설명하자면 '정렬되지 않은 열에서 가장 작은 값을 찾아 정렬되지 않은 열에 첫 번째 요소와 교환'하는 것이다. 시간 복잡도는 O(n^2)이다. // 기존 배열 // 정렬된 수 : 없읍 // 정렬되지 않은 수: 전부 [6,4,8,3,1,9,7] // 가장 작은 수 1을 첫 번째 요소 6과 변경한다. // 정렬된 수 : 1 // 정렬되지 않은 수: 4,8,3,6,9,7 [1,4,8,3,6,9,7] // 정렬된 수 1을 제외한 수 중 가장 작은 수 3을 4와 변경한다. // 정렬된 수 : 1,3 // 정렬되지 않은 수: 8,4,6,9,7 [1,3,8,4,6,9,7] stati..

버블 정렬, 칵테일 정렬

버블 정렬'버블 정렬'이라는 말은 액체 안의 공기 방울이 보글보글 위로 올라오는 모습에서 착안한 것이다. 이 알고리즘은 서로 인접한 두 원소를 비교하여 순서가 맞지 않으면 서로 교환하는 방식으로 정렬을 수행한다. 배열 요소 전체를 훑는 일련의 과정(비교, 교환작업)을 패스(pass)라고 한다. 한 패스가 끝나면, 배열의 가장 큰 원소 혹은 가장 작은 원소가 맨 끝으로 이동한다. 버블 정렬의 시간 복잡도는 최악, 평균, 최선 모두 O(n^2)이다. 최악의 경우, 배열이 이미 정렬되어 있는 경우에도 교환 연산이 발생하므로 비효율적이다. 서로 이웃한 요소에 대해서만 교환하므로 이 정렬 알고리즘은 안정적이라고 할 수 있다. 기본적인 버블 정렬// a[idx1] 와 a[idx2]의 값을 바꾼다. static vo..

정렬

정렬이란? 정렬 알고리즘의 안정성 정렬 알고리즘은 안정된(stable) 알고리즘과 그렇지 않은 알고리즘으로 나눌 수 있다. 안정된 정렬이란 같은 값을 가진 요소의 순서가 정렬 전후에도 유지되는 것을 말한다. 안정되지 않은 알고리즘은 같은 점수인 경우 반드시 학번 순서대로 정렬되지는 않는다. // 정렬 전 { 0 = 13, 1 = 9, 2 = 6, 3 = 4, 4 = 6, 5 = 12 } // value를 오름차순으로 정렬 // 2,4 의 순서가 유지된다 { 3 = 4, 2 = 6, 4 = 6, 1 = 9, 5 = 12, 0 = 13 } 내부 정렬과 외부 정렬 정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 내부 정렬을 사용하고 정렬할 데이터가 너무 많아서 하나의 배열에 저장할 수 없는 경우에 ..

당신의 뇌는 최적화를 원한다 - 아세틸콜린

아세틸콜린 아세틸콜린은 인지기능과 영감, 작업효율, 창조력, 발상력 등과 관련된 뇌 내 물질이다. 아세틸콜린을 조절할 수 있으면 일의 효율을 높이고 영감을 얻기 쉽다. 의욕이 나지 않으면 일단 시작하라 무기력할 때 의욕이 생길 때까지 기다리는 사람이 많지만, 그것은 잘못된 일이다. 오히려 '의욕이 나지 않으니 일단 시작하자'는 것이 뇌과학적으로 올바른 동기부여 방법이다. 우리 뇌는 측좌핵의 신경세포가 활동하면 아세틸콜린이 분비되면서 점점 기분이 고양되고 의욕이 솟는다. 하지만 측좌핵은 '자극'이 주어졌을 때만 활동을 시작한다. 마냥 기다린다고 해서 자극을 얻을 수 없다. 그러므로 의욕이 나지 않으면 일단 시작하는 것이 정답이다. 아세틸콜린과 잠 렘수면 중에는 아세틸콜린이 활성화된다. 아세틸콜린이 활발하게..

도서 2023.12.11

당신의 뇌는 최적화를 원한다 - 멜라토닌

멜라토닌 멜라토닌은 잠을 자기 위한 2가지 시스템 중에 하나로 우리를 금방 잠들게 하고, 수면의 질과 양을 늘린다. 눈에 들어오는 빛의 양이 줄어들면 그것을 감지한 송과체가 멜라토닌을 분비한다. 멜라토닌은 주간보다 야간에 5~10배나 많이 생성되고 새벽 2~3시쯤 생성량이 최고조에 이른다. 멜라토닌을 분비하는 7가지 방법1. 침실을 깜깜하게 하고 잔다. 빛을 싫어하는 멜라토닌의 특성상 자는 동안 망막에 빛이 들어오면 분비가 억제된다. 가능하면 수면등도 끄고 되도록 어둡게 해 놓고 자는 것이 가장 쉽게 멜라토닌 분비를 촉진하는 방법이다. 세로토닌 분비를 위해 커튼을 열고 잘 때 빛이 들어오는 방이라면 숙면을 위한 멜라토닌 분비가 더 중요하므로 창을 가리고 자는 것이 좋다.2. 자기 전에 어두운 방에서 긴장..

도서 2023.12.11

재귀 알고리즘의 비재귀적 표현

예제 재귀 알고리즘 static void recur(int n) { if (n > 0) { recur(n - 1); System.out.println(n); recur(n - 2); } } 꼬리 재귀의 제거 메서드의 꼬리에서 재귀 호출하는 메서드 recure(n-2)는 아래처럼 바꿀 수 있다. n의 값을 n-2로 업데이트하고 메서드의 시작지점으로 돌아간다 코드로 표현하자면 이렇게 할 수 있다. static void recur(int n) { while (n > 0) { recur(n - 1); System.out.println(n); n = n - 2; } } 재귀의 제거 앞에 재귀를 제거하기 위해서는 n의 값을 잠시 저장해야 할 필요가 있다. n을 출력하기 전에 recur(n-1)을 실행해야 하기 때문..

유클리드 호제법(Euclidean algorithm)

유클리드 호제법(Euclidean algorithm)은 최대공약수(Greatest Common Divisor, GCD)를 구하는 알고리즘 중 하나이다. 이 알고리즘은 고대 그리스의 수학자 유클리드(Euclid)에 의해 고안되었으며, 두 정수의 최대공약수를 효과적으로 찾는 데 사용된다. 최대공약수(Greatest Common Divisor, GCD)는 두 개 이상의 정수의 가장 큰 공약수를 나타내는 개념이다. 공약수는 주어진 두 수의 모두에 나누어 떨어지는 수를 말하며, 최대공약수는 이러한 공약수 중에서 가장 큰 수를 의미한다. 두 수 24와 36의 경우 공통된 약수는 1, 2, 3, 4, 6, 12이다. 이 중에서 가장 큰 수인 12가 두 수 24와 36의 최대공약수가 된다. 따라서 GCD(24, 36)..

당신의 뇌는 최적화를 원한다 - 세로토닌

세로토닌 치유물질인 세로토닌은 각성, 기분, 마음의 안정과 깊은 연관이 있다. 세로토닌이 분비되면 의욕적인 마음이 들고 몸에 활력이 솟고 기분이 쾌활해진다. 머리가 맑아져서 곧바로 일을 시작할 수 있는 상태가 된다. 행복이라고 하면 도파민을 연상하기 쉬운데 도파민의 행복감이 "해냈다!"라는 성취감 같은 강렬한 감정인데 비해 세로토닌의 행복감은 '평온함', '느긋함' 같은 감정을 기반으로 한 온화한 감정이다. 행복하다고 느끼며 편안해지려면 반드시 세로토닌이 제대로 기능해야 한다. 세로토닌의 합성과 분비는 해가 뜨면 활발해지고 오후에서 밤이 됨에 따라 점점 줄어든다. 그리고 '논렘수면'(안구가 움직이지 않는 깊은 수면) 중에는 전혀 분비되지 않는다. 세로토닌을 활성화하는 방법 기상 후 2~3 시간 동안 뇌가..

도서 2023.12.09
728x90