[C# Dictionary] 메모화 객체 사용하는 방법 효율적! 메모화 객체인 C#의 Dictionary객체는 간단하게 설명하면, 말 그대로 한 번 계산 한 값을 메모해 놓을 수 있는 객체입니다. 반복적인 작업으로 우리가 프로그래밍을 할 때 한 번 구해놓았던 값을 또 계산하지 않아도 되게 해주는 것이죠. 이 객체를 사용하면 효율적인 속도를 내는 프로그램을 작성할 수 있습니다. Dictionary를 이용한 메모화 프로그래밍을 설명하기 위한 예시로 피보나치 수열을 들자면, 만약에 i를 매개변수로 받아서 피보나치수열의 i번째 수를 반환받는다고합시다. 그런데 처음에 5를 입력했다고 치면 피보나치는 0부터 5까지 6번의 연산을 하게됩니다. 이렇게 작은 수라면 연산을 할 때 상관이 없지만 계속적인 값을 만약에 10..
C#프로그래밍 연습문제 Part1 간단한 연습문제를 풀어봅시다. 연습문제는 제가 공부하는 책인 한빛아카데미의C#프로그래밍 책에서 가져오게 되었습니다.인치를 센치로 바꾸는 문제 1. 인치(inch)를 센치(cm)로 구해주는 코드를 작성하세요. 위와 같이 작성했습니다. 출력은 Console.Write로 해주고 먼저 인치단위를 입력받기 때문에 인치는 int로 입력받아줍니다. 그런데 입력을 Console.ReadLine으로 받기 때문에 int.Parse로 인트형으로 변환을 해줍니다. 그리고 cm값으로 변경할 때는 그 인트값에 그냥 2.54를 곱해주면됩니다. (1inch==2.54cm 일때) 그리고 출력을 하게 되면, 이렇게 잘 출력이 되었습니다. 그렇다면 이제 킬로그램(kg)을 파운드(found)로 변환해주는 ..
[c#] foreach 반목문 갖다뽀개기 C언어와 C++언어를 공부하면서 for문까지는 기본적인거니까 알고 있었는데, foreach문은 처음봅니다. 대충 어떻게 사용하는지 갖다뽀개버리면서 알아보도록하겠습니다. foreach문은 컬렉션에 반복문을 사용할 때 사용합니다. 컬렉션이라 여러 개체가 모여서 집합을 이룬 것이라고하죠. 배열같이 말입니다. 그래서 이걸 한번 해보도록 하겠습니다.foreach 사용방법 사용은 그냥 이렇게 하면 됩니다.foreach ( [자료형] [변수명] in [컬렉션]) { [실행 정의부] } 간단하지 않습니까? 맞습니다. 그냥 컬렉션이 가지고 있는 자료형을 써줍니다. 여기서는 string 배열이므로 자료형을 string으로 해주었습니다. 그리고 변수명은 가지고있는 항목임을 나타내니까..
[C#] 속성 : 겟터와 셋터(get, set)키워드 알아보자 일반적으로 클래스를 만들 때 캡슐화를 위해서 private속성을 지정하여 클래스 밖에선 값을 수정할 수 없게 만듭니다. 하지만 필요로 인해서 값을 수정해야 하는데 수정하지 못한다면 어떻게 될까요? 그래서 보통 클래스에서는 get과 set함수를 따로 만들어서 값을 수정하거나 가져올 수 있게 하는데요. C#에서는 따로 함수를 만들지 않아도 get과 set을 사용할 수 있는 방법이 마련되어있습니다. 바로 속성을 이용하는 방법입니다.속성으로 getter setter 만들기 바로 위와 같은 클래스가 있다고 쳐 봅시다. 폰넘버라는 변수를 프리빗으로 지정해준 뒤 그 바로 밑에 빨간 네모칸 영역이 바로 속성영역입니다. 위와 같이 속성을 지정해 주시면 되겠습..
[C#] readonly 키워드를 알아보자 오늘은 C#프로그래밍언어에 있는 readonly 키워드에 대해서 알아보도록 하겠습니다. readonly이라고 하면 보통 읽기전용이라고 많이들 알고 계실 겁니다. 그와 마찬가지로 C#에서의 readonly 키워드도 동일한 역할을 한다고 보시면되겠습니다.readonly keyword 사실 다른 프로그래밍언어에도 있는 개념이 읽기전용으로 된 변수인데요? 그런데 이미 다 알고있는 사실이기 때문에 따로 형식을 지정해 주지 않아서 키워드가 따로없습니다. 예를 들어서 상수가 읽기전용 변수가 되겠죠? 그런데 씨샵에서는 특이하게도 리드온니 키워드가 존재합니다.readonly 변수 만드는 방법 읽기전용변수를 만드는 방법은 간단합니다. 클래스변수 또는 변수앞에다가 readonly ..
C# 인스턴스변수와 클래스변수 C#의 클래스에서 보면 인스턴스변수와 클래스변수라는 것이 있습니다. 둘 다 변수라는 점에서는 같지만 사용되는 방법이 다르므로 그 차이점을 집고 넘어가려고합니다. 그 전에 간단하게 인스턴스멤버와 클레스멤버에 대해서 써보자면, 일단 인스턴스는 클래스에서 객체를 말합니다. 만약에 Random 클래스(클래스이름의 첫글자는 대문자로 약속)의 인스턴스인 random이 있다고 치면 여기서 사용되는 녀석 random.Next(xx), random.NextDouble() 등 인스턴스 뒤에 점을 찍고서 사용하는 멤버들을 우리는 인스턴스 멤버라고 합니다. 그 멤버가 변수, 매서드, 속성 임에 따라서 각각 인스턴스변수, 매서드, 속성 이라고 표현하는 것이죠.인스턴스변수 인스턴스 변수라고 함은 위..
C# - var 키워드는 무엇인가 이번에 C#을 배우면서 처음 보는 키워드인 var를 한번 알아보고자 글을 써보려고 합니다. 우리가 변수를 선언할 떄는 앞에 키워드를 붙여서 어떤 형식인지 명시를 해주어야합니다. 위와 같이 정수형은 int, 문자형은 char 그리고 문자열은 string 이라는 형식으로 선언해서 변수를 만들게 됩니다. 그런데 var라는 키워드를 사용해서 변수를 만들게 되면, var키워드 뒤에 문자열이든 정수든 실수든 무엇을 넣던 간에 상관이없습니다. 바로 이 var키워드의 기능은 변수의 자료형을 자동으로 저장하는 것 입니다. c# var 사용방법 var [변수명] = [초기화 해줄 값] ; 위와 같이 c#에서 var키워드를 사용할 수 있습니다. 저는 자료형을 지정하지 않고 var키워드를 사..