세상에 이상을 더하다.

지금, Rooti와 함께라면.

Rooti는 상상을 만드는 공방입니다.

Leap to Rooti 32

극한 법칙의 엄밀한 증명(엡실론-델타 논법) - 합과 차의 법칙

Calculus에서 가장 먼저, 기본으로 다루어지는 극한 법칙 다섯 가지 중 합과 차의 법칙(1, 2)를 이번 글에서 증명하도록 하겠습니다. 위 이미지에서 언급되었듯, x가 a로 접근할 때의 f(x)와 g(x)의 극한값은 존재한다고 가정합니다. 아래 증명에서는 이 극한값을 각각 F, G라고 하겠습니다. 1. 합의 법칙 위 두 줄은 'x가 a로 접근할 때의 f(x)와 g(x)의 극한값이 각각 F와 G'라는 전제를 엡실론-델타 논법으로 표현한 것입니다. 이미 가정한 내용이므로 이는 성립합니다. 혹여나 일러두자면, ∀은 '모든 ~에 대해', ∃은 '존재한다.', s.t.는 '다음을 만족하는' 이라는 뜻입니다. 이제 모든 양의 실수 ε에 대해 δ를 다음과 같이 채택하겠습니다. min은 최소함수입니다. 즉, δ을..

Lecture/Calculus 2023.01.23

생성자( Constructor ), 변수 유효 범위

전에 배운 선언과 동시에 인스턴스화를 할 때 어떻게 하였는가? 생성자의 개념 그런데 뒤에 (클래스명) ( ); 이게 무엇일까? 메서드 같기도 하고.. 그런데 클래스명과 같은 이름을 가지는 메서드인가?? 이것이 지금 배울 '생성자'라는 것이다. 생성자란 클래스를 생성할 때 사용하는 Person(), Burger()과 같은 메서드를 의미하고 이들이 하는 일은 클래스를 처음 만들 때 멤버 변수를 초기화하는 것이다. 변수 유효 범위 이번 기회에 변수 유효 범위에 대해서도 알아보면 되겠다 ^^ 디폴트 생성자( Default Constructor ) Person(), Burger() 와 같이 괄호 안에 아무것도 넣지 않은 생성자를 디폴트 생성자라고 한다. 정확히 말하면 각 클래스에 생성자에 관한 내용을 아무것도 적..

Lecture/Java 2023.01.23

도트 연산자 (dot operator)

도트 연산자 우선 우리가 저번에 만든 인스턴스들에 값을 집어넣는 방법을 코드로 보자. (Class 이름) (참조변수 이름) = new (Class 이름) (); 을 통해서 선언 밑 초기화를 하고 각 클래스들이 들고 있는 멤버 변수(인스턴스 변수)에 어떤 값을 집어넣기 위해 (클래스명) ' . ' (변수명)을 하는 것을 볼 수 있다. (멤버변수라는 용어는 변수 유효 범위 파트에서 설명할 것이다.) 이때 ' . ' 가 도트 연산자이며 간단하게 그 인스턴스의 변수 혹은 메서드에 접근하기 위함이라고 이해하면 된다. 각 인스턴스들이 가지고 있는 멤버변수 임이 중요하다.

Lecture/Java 2023.01.23

버블 정렬 (코드업 1441: 버블 정렬)

버블 정렬 알고리즘은 매우 비효율적이며 시간이 오래 걸리는 알고리즘이지만, 이해하기 쉽고 직관적이어서 첫 번째로 가져왔습니다. 버블 정렬을 헝가리 무용으로 표현한 영상입니다. 오름차순으로 정렬하려는 상황을 생각하겠습니다. 1번째와 2번째 원소를 먼저 비교합니다. 2번째 원소가 1번째 원소보다 더 크면 서로를 바꿉니다. 2번째와 3번째, ... n-1번째와 n번째까지 계속 이것을 수행합니다. 이 과정을 시행 1회라고 부르겠습니다. 그리고 위 시행을 n번 반복하면 됩니다. 하지만, 횟수를 더 줄이려면, 1번째 시행에서는 n번째까지, 2번째 시행에서는 n-1번째까지, ... , n-1번째 시행에서는 2번째까지만 탐색(크기 비교 및 교체)해도 됩니다. 왜냐하면, 버블 정렬은 앞에서부터 차례대로 연속된 두 원소를..

Lecture/Algorithm 2023.01.21

알고리즘 : 문제를 해결하는 가장 좋은 방법이 무엇일까

Introduction 알고리즘은 문제를 해결하기 위한 일련의 절차를 의미합니다. 특히 컴퓨터과학에서 많이 쓰이는 용어이기도 하죠. 프로그래밍에서의 알고리즘은 대개 일반화된 문제들에 대해 이미 정형화되어 명명된 절차를 일컫습니다. 어떤 문제를 해결할 수 있는 알고리즘이 여러 개 있을 수 있고, 또 하나의 문제를 해결하는 데에 여러 알고리즘이 쓰이기도 합니다. 문제에 대응하는 적합한 알고리즘의 선택은 연산 시간을 획기적으로 단축해 주거나 혹은 문제에 대한 해답의 정확도를 높여주기도 합니다. 지금부터 이 강의에서는 이들의 매커니즘을 소개하고 실제 코드를 통해 풀어내 보려 합니다. 온라인 프로그래밍 저지 사이트(백준, 혹은 코드업)의 문제를 예제로 참조하겠습니다.

Lecture/Algorithm 2023.01.21

Route, 2

In-Game 모바일 게임의 핵심이라고 할 수 있는 로컬 저장소 저장을 드디어 구현하게 되었습니다. Json을 활용하여 저장 및 불러오기 기능을 구현하였으며 GameOver시 로컬저장소의 지정된 위치에 저장할 수 있도록 하였습니다. 기본적인 점수 시스템은 현재 점수가 최고점수보다 크다면 갱신되는 방식입니다. Later 기본적으로 Dictionary의 형태로 저장되는 Json의 형식은 보안에 취약합니다. 그렇기 때문에 UTF-8 변환 등을 포함한 여러 변환을 통해 암호화를 할 예정입니다. 물론 Load의 과정에서 다시 복호화하는 로직도 구현할 예정입니다.

내 Class 사용 설명서 :인스턴스화, 참조변수

이제 앞에서 설명한 클래스를 어떻게 사용할 것인지에 대해 알아보자. 참조변수( Reference Variable ) 클래스 하나가 다음과 같이 존재한다고 하자. ( 수정사항 --> String[ ] coupons = new String[2]; ) 이렇게 설계도를 만들었으니 이들을 사용해 보자. 이때 참조변수와 인스턴스화가 필요하다. 위 코드에서 A,B,whopper_Set, janmang_Loopy 가 각각 '참조변수'이다. 설계도가 만들어져 있으니 설계도를 그대로 사용하는 여러 인스턴스들을 만든 것이다. 여기서 인스턴스라는 단어가 나오는데... 인스턴스는 한국어로 '객체'이다. 하지만 나는 '인스턴스' 와 '객체'를 다른 의미로 사용할 것이다. ( 참고한 책에서 그렇게 배웠습니다. "교과서 위주로 공부..

Lecture/Java 2023.01.19

객체지향의 꽃 Class

Class의 개념 하나의 설계도를 만든다고 생각하면 된다. 객체지향과 절차지향의 설명을 할 때 곁들였던 버X킹 주문 프로그램을 통해서 Class, 객체의 개념을 알아보자! 버X킹에서 A 씨가 불고기 와퍼 세트를 주문한다고 하면, A 씨에 대한 정보와 불고기 와퍼 세트에 대한 정보가 필요할 것이다. A씨를 한번 분석해 볼까?? A씨 : 멤버십 등급 : WHOPPER / 쿠폰 소유 : 아.아 무료쿠폰 / ID : 12345678 불고기 와퍼 세트에 대한 정보를 분석해 보자 불고기 와퍼 세트 : 이름 : 불고기 와퍼 세트 / 가격 : 8900 / 할인율 : 30% 이제 이들을 다시한번 생각해 볼까? 이 세상에는 A 씨 말고도 B, C, D 씨도 있다. 그런데 이들도 멤버십 등급, 쿠폰 소유, ID 등을 공통으..

Lecture/Java 2023.01.19

(Procedural || Object-Oriented) Programming

절차지향 (Procedural Programming) 대표적 언어 : C 특징 : 그 이름 그대로 "절차"가 중요함. MBTI의 J의 성향 100%, 코드의 순서를 매우 중요하게 여김 장점 : 컴퓨터의 정보 처리과정과 유사하여 그 속도가 빠름 단점 : 일단 객체지향보다 뭐가 좋은지 잘 모르겠음 ( 지극히 개인적인 주관입니다. ) , 유지보수가 어려움, 순서를 너무 중요시하다 보니 play it by ear를 못함; 언어의 융통성이 없음 객체지향 ( Object-Oriented Programming ) 대표적 언어 : C#, Java 등등 특징 : 그 이름 그대로 "객체"가 중요함. 근데 이 객체라는 게 상당히 편한 것이, 예를 들어서 버X킹에서 음식을 주문받는 프로그램을 만들고 싶다고 하자. 그러면 그 ..

Lecture/Java 2023.01.19

자바를 잡아볼까나?

Introduction 음음, 제가 Java를 공부하며 C#과 비슷한 것을 정말 많이 봤어요! 그래서 게임개발을 하며 얻을 수 있는 여러 문법적 어려움들을 자바의 문법과 비교해 가며 공부하는 거, 나쁘지 않다고 여겨 카테고리를 만들어 봅니다. 틀린 말, 이상한 말을 할 수도 있어요! 틀린 내용이 있다면 많은 비판과 댓글 부탁드립니다! 주의할 점 자바 문법의 전체를 다루지는 않을 것입니다. ( 자료형, 반복문, 조건문 등 너무나 당연한 것들 ) C#과 Java를 비교, 대조하며 게임을 개발하며 중요하다고 느꼈던 문법들을 정리할 예정입니다. 즉, 객체지향에 대한 내용을 주로 하지 않을까..! 합니다. 참고한 책은 , 입니다. 지금부터 혼자 공부하며 정리하는 안..

Lecture/Java 2023.01.19