분류 전체보기
나머지 연산의 성질 - 피보나치
7~14번 테스트 케이스에서 "실패" OR "signal: illegal instruction (core dumped)" 🔎 이렇게 푸셨나요? % 1234567를 딱 한 번만 하셨나요? 오버플로우가 난 게 아닌가 의심돼요! 🚨이런 문제가 있어요 n이 매우 큰 경우 n번째 피보나치 수는 언어가 표현할 수 있는 자료형의 범위를 넘어가, 오버플로우가 납니다. 예를 들어 47번째 피보나치 수는 2,971,215,073이고, 이 수는 32비트 정수(ex. int) 범위를 넘어 오버플로우가 발생합니다. 100,000번째 피보나치 수는 자릿수가 20,000을 넘어가며, 이는 64비트 정수(ex. long) 범위를 넘어 오버플로우가 발생합니다. 💡그럼 코드를 어떻게 바꾸면 좋나요? 모든 단계에서 % 연산을 사용하여, ..
길이가 같은 두 배열의 요소끼리 곱하고 더할 때의 최솟값
길이가 같은 배열 A, B 두개가 있다. 각 배열은 자연수로 이루어져 있다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더한다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더한다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더한다. (누적된 값 : 5 + 16(4x4) = 21) A에서 세번째 숫자인 2, B에..
[JAVA] JVM 내부 구조와 메모리 구조
자바 가상 머신(JVM)의 동작 방식) 1. 자바로 개발된 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다. (JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.) 2. 컴파일(Compile): 작성한 자바 소스코드(.java)를 자바 컴파일러를 사용하여 컴파일한다. 컴파일은 소스 코드를 기계어가 아닌 중간 단계의 바이트 코드(Bytecode)로 변환하는 과정이다. 컴파일된 바이트 코드는 .class 확장자를 가진 파일에 저장된다. 3. 클래스 로딩: 자바 가상 머신(Java Virtual Machine, JVM)은 프로그램을 실행하기 전에 컴파일된 바이트 코드를 클래스로 로딩한다. 클래스 로더(Class Loader)는 필요한 클래스들을 찾아서 메모리(JVM Runtime Da..
[JAVA] JVM (Java Virtual Machine) 이란?
JVM의 동작 방식 (자바 코드 실행 과정) 1. 자바로 개발된 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다. (JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.) 2. 컴파일(Compile): 작성한 자바 소스코드(.java)를 자바 컴파일러를 사용하여 컴파일한다. 컴파일은 소스 코드를 기계어가 아닌 중간 단계의 바이트 코드(Bytecode)로 변환하는 과정이다. 컴파일된 바이트 코드는 .class 확장자를 가진 파일에 저장된다. 3. 클래스 로딩: 자바 가상 머신(Java Virtual Machine, JVM)은 프로그램을 실행하기 전에 컴파일된 바이트 코드를 클래스로 로딩한다. 클래스 로더(Class Loader)는 필요한 클래스들을 찾아서 메모리(JVM Runtime..
[JAVA] JDK, JRE, JVM
JDK, JRE, JVM JDK (Java Development Kit) 자바 개발 환경으로 자바 어플리케이션을 개발하기 위해 필요한 도구를 제공한다 JDK는 JRE + 개발을 위해 필요한 도구 즉, 자바 언어를 바이트 코드로 컴파일 해주는 자바 컴파일러(javac), 자바 클래스 파일을 해석해주는 역 어셈블리어(javap) 등을 포함한다. JRE (Java Runtime Environment) JRE는 자바 실행 환경으로 JVM, JAVA 클래스 라이브러리, 기타 JAVA 어플리케이션 실행에 필요한 파일들을 포함한다. JRE는 JVM의 실행환경을 구현했다고 할 수 있다. JVM (Java Virtual Machine) JVM은 자바 가상 머신으로 자바 어플리케이션을 실행하는 가상 머신이다. 실제 컴퓨터..
최대 공약수와 유클리드 호제법 그리고 최소공배수
개념 최대공약수(Greatest Common Divisor, GCD) 공약수(common divisor)란 두 수 이상의 여러 수의 공통된 약수를 의미한다. 최대공약수(GCD)란 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킨다. 소인수분해를 이용한 방법 나눗셈을 이용한 방법 유클리드 호제법 개념 유클리드 호제법은 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r(a%b)의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r’를 구하고, 다시 ..
numpy.newaxis는 어떻게 작동하며 언제 사용합니까?
간단히 말해, numpy.newaxis는 numpy array의 차원을 늘려준다고 보면 된다. 1D 배열은 2D 배열이 됩니다 2D 배열은 3D 배열이 됩니다 3D 배열은 4D 배열이 됩니다 4D 배열은 5D 배열이 됩니다 다음은 1D array에서 2D array로 차원을 늘려주는 그림이다. np.newaxis를 사용함에 있어 3가지 정도의 시나리오가 적합해 보인다. 시나리오-1 1D array를 row vector나 column vector로 사용하고 싶을 경우 numpy에서 array를 만들면 shape은 아래와 같이 나타낸다. 1 2 3 4 # 1D array In [7]: arr = np.arange(4) In [8]: arr.shape Out[8]: (4,) Colored by Color Sc..
Decorator @의 의미
python으로 작성된 코드들을 보다 보면 @로 시작하는 구문들을 볼 수 있습니다. @decorator_ def function(): print("what is decorator?") Decorator를 한마디로 얘기하자면, 대상 함수를 Wrapping 하고, Wrapping 된 함수의 앞뒤에 추가적으로 꾸며질 구문들을 정의해서 손쉽게 재사용 가능하게 해주는 것입니다. Decorator는 감싸고 있는 함수를 호출하기 전이나 후에 추가로 코드를 실행하는 기능을 갖췄습니다. 이 기능으로 입력 인수와 반환 값을 접근하거나 수정할 수 있습니다. 이 기능은 시맨틱 강조, 디버깅, 함수 등록을 비롯해 여러 상황에 유용합니다. Decorator는 어떤 경우에 쓰이는가? 메인 구문이 있고, 여기에 부가적인 구문을 추가..
[Python] 입력받기
1. input() 한줄씩 통째로 입력받는 방벙으로 input()은 입력되는 모든 것을 문자열로 입력받는다. In [1]: a = input() print(type(a)) 10 10 20 30을 입력하면 '10 20 30' 으로 문자열 형태로 변수 a에 저장된다. In [2]: a = int(input()) 10 In [3]: a = int(input()) 10 20 30 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 a = int(input()) ValueError: invalid literal for int() w..
[Application & Tips] Efficient Models
[TensorFlow] Lab-07-3-1 application and tips 모두의 딥러닝 시즌 2 정리... 시즌2 강의가 부실하다고 판단되어 시즌 1 lec 07-2: Training/Testing 데이타 셋 강의 내용 추가 정리 목차 Data sets Evaluation using training set? Training and Test sets Trainig / Validation / Testing Learning Online Learning vs Batch Learning Fine tuning Efficient Models Sample Data MNIST / Fashion MNIST / IMDB / CIFAR-100 Efficient Models 실제 우리가 fine-tuning이라던지 여러..