# Csharp

25개의 포스트

C#, 백준 '2048(EASY)' (12100번) 멀티 스레딩으로 풀기

4방향씩 재귀적으로 탐색해 나가며 모든 경우의수를 완전탐색해 문제를 풀었다. 멀티 쓰레드의 경우 처음 4방향 탐색시 각각 쓰레드를 할당해 4개의 쓰레드를 사용해 풀었다. 성능차이를 보다 쉽게 보기 위해, N=20 문제와 달리 5번이 아닌 10번 수행시 최댓값을

2020년 6월 29일
·
0개의 댓글
post-thumbnail

C++ 템플릿과 C# 제네릭의 차이

C++과 C#은 둘 다 매개 변수가 있는 형식을 지원하는 기능이 있다. C++에서는 템플릿이라는 이름으로 제공되고 있으며, C#에서는 제네릭이라는 이름으로 제공되고 있다. 하지만, 이 둘은 많은 차이가 있다. 마이크로 소프트가 설명하는 C++ 템플릿과 C# 제네릭의

2020년 6월 28일
·
0개의 댓글
post-thumbnail

코루틴(Coroutine)

이제까지 배운 것들을 되돌아 보는 시간을 가지기 위해 블로그 작성을 시작하였다. 내가 잘 알았던 것, 잘 알지 못했던 것들을 기록하면서 더 나은 프로그래머가 되기를 원한다. 오늘은 코루틴에 대해서 되돌아 보는 시간을 가진다. 코루틴은 메인 루틴과 대등한 관계를 가지

2020년 6월 21일
·
0개의 댓글
post-thumbnail

유니티 2D에서 자연스러운 투사체를 구현해보자잇!

유니티2D Isometric View에서 자연스러운 투사체를 구현하는 방법을 구상하다가 베지어 커브를 사용하게 되었습니다.공식은 s = 1 - t 일때A = (s * P0) + (t * P1)B = (s * P1) + (t * P2)C = (s * A) + (t * B

2020년 6월 8일
·
0개의 댓글

단일 Winform Application

Winform 작업을 하다보면 내가 만든 Application이 실행되고 있으면 새로운 Application이 뜨는 것이 아니라 기존의 Application을 보여줌으로써 여러개가 실행되는 것을 막고싶을 때가 있다. 그럴때 Mutex를 이용해 프로세스간 동기화를하고 W

2020년 6월 7일
·
0개의 댓글

반복문에서 아이템 지우기

반복문에서 아이템을 지우는 방법이 여러가지 있는데 많이 쓰이는 뒤에서 부터 읽어서 지우는 방법으로 하면 꽤 괜찮은 코드를 짤 수 있다.

2020년 6월 7일
·
0개의 댓글
post-thumbnail

구글 스프레드 시트 API를 이용해 유니티 데이터 테이블 관리 매니저 만들기 2: 구현편

안녕하세요. 준비편에 이어 이번 포스팅에서는 데이터 테이블 관리 매니저를 본격적으로 구현해보도록 하겠습니다. 우선 히어아키에 존재하면서 API를 호출해 데이터를 수신할 매니저 클래스를 생성해주세요 시트에서 파싱한 DataTable 들을 관리할 DataSet 변수도 필

2020년 6월 4일
·
2개의 댓글
post-thumbnail

구글 스프레드 시트 API를 이용해 유니티 데이터 테이블 관리 매니저 만들기 1: 준비편

안녕하세요. 얼마전 소규모 인디게임 개발 프로젝트에 참여하여 구글 스프레드 시트를 이용해 쉽고 편하게 테이블을 관리할 수 있는 테이블 매니저를 만들어보았습니다. 기본적으로 구글 스프레드시트 API 를 호출하여 지정한 시트 데이터를 받아온 후, DataTable 로

2020년 6월 2일
·
0개의 댓글
post-thumbnail

NamedPipe

서로 다른 프로세스끼리 메시지나 데이터를 주고 받고싶을 때가 있을 것이다. 프로세스 통신에는 여러가지 방법들이 있는데 그 중 NamedPipe 명명된 파이프를 통해 통신하는 방법을 알아봅니다. Pipe의 특징으로는 단방향 통신이다 라는 것만 알고 넘어가면 코드는 아주

2020년 5월 9일
·
0개의 댓글

20-0503 원격으로 개체생성하기

개체를 동적으로 생성하고 싶을 때가 있다. new() 키워드를 통해 명시적으로 생성할 수도 있지만 경우에 따라 Type이나 혹은 클래스의 이름만으로 생성하고 싶을 때를 얘기하는 것이다.두 가지 클래스를 이용해 원격 개체를 생성할 수 있다.Activator 클래스 (Sy

2020년 5월 9일
·
0개의 댓글

리스트 자르기(SplitList)

길이가 14인 리스트가 있다. 길이에 상관없이 리스트에서 5개씩 꺼내서 작업할 때 쓰는 표현이다. 확장메서드와 제네릭 타입을 이용해 꽤 괜찮게 표현할 수 있다.

2020년 4월 13일
·
0개의 댓글

깃 헙(Github) 소스 업로드

글에서 쓰인 코드들을 깃 헙에 꾸준히 올릴려고 한다.github: https://github.com/opzerg/YGStudy.git

2020년 4월 13일
·
0개의 댓글
post-thumbnail

20-0413 가교 패턴(BridgePattern)

우리가 코드를 짜다보면 의도치 않게 많은 파생클래스를 만들어 낼 때가 있다. 정말 필요한 파생클래스 일 수도 있지만 그 모델의 디자인을 다시한번 살펴 볼 필요가 있다. 파생된 클래스에서 정의되고 있는게 다른 파생클래스에서도 정의하고있는 반복적인건 아닌지를 말이다. 이때

2020년 4월 12일
·
0개의 댓글
post-thumbnail

20-0406 Delegate Chain

대리자 Delegate의 멀티 캐스트 기능을 활용해 Observer Pattern을 구현할 수 있다. 그 방법이 Delegate Chain이다 Chain 처럼 하나의 대리자에 여러개의 함수가 엮여있다 라고 생각하면 편하다. 다음 예제는 Thread 3개가 있고 Thre

2020년 4월 6일
·
0개의 댓글
post-thumbnail

20-0330 확장 메서드(Extension Method)

가끔은 우리가 .Net에 이미 정의된 클래스에 함수를 추가하고 싶을 때가 있다. 예를 들어 IEnumerable을 상속 받은 List나 혹은 Queue에 내가 정의한 함수를 멤버 엑세스 연산자로 접근해 쓰고싶을 때를 얘기하는 것 이다.다음 예제는 의미가 크게 없고 확장

2020년 3월 30일
·
0개의 댓글
post-thumbnail

20-0330 Enum형식에 문자열쓰기

Enum 열거형식은 기본 정수 숫자 형식의 명명된 상수 집합에 의해 정의되는 값 형식이다. 어떤 타입을 정하거나 에러 코드를 관리하거나 할 때 많이 쓰인다. 하지만 이런 Enum은 앞서 말했다시피 기본 정수 숫자이다. 그러나 우리는 떄로 이거에서 벗어나 문자열을 Enu

2020년 3월 30일
·
0개의 댓글
post-thumbnail

YamlDotNet Part.2

YamlDotNet 사용법 두 번째 설명은 생략하고 바로 코드로 갑니다. 첫 번째는 아래 링크를 따라가시면 됩니다.클래스를 직렬화 역직렬화 하는 것이 아니라 값 그대로 직렬화 역직렬화를 하는방법. 기본적으로 자료형은 Dictionary<object, object>

2020년 3월 24일
·
0개의 댓글
post-thumbnail

관찰자 패턴(Observer Pattern)

코드를 짜다보면 객체의 상태를 변경할 때 의존성이 있는 객체들의 상태들 까지 변경되길 바랄 때가 있다. 대부분 그렇지 않겠지만 코드를 중복해서 짜는 경우가 있다면 옵저버 패턴을 이용하면 꽤 괜찮은 코드를 짤 수 있다.다음 예제는 직원(Employee) 객체는 평가(Ra

2020년 3월 17일
·
0개의 댓글
post-thumbnail

객체의 선후관계(Compare)

객체의 선후관계를 정의하고 정렬하고자할 때 매번 작성되는 불필요한 코드작성을 피해야한다. 다음 코드는 전략패턴(Strategy)과 함께 사용한다.

2020년 3월 14일
·
0개의 댓글
post-thumbnail

객체(object) 비교

우리는 개발을 하다보면 객체의 같음을 비교할 때가 많다. 실제 참조가 같은지 혹은 사용자가 만든 객체의 특정 값이 같은지를 비교하여 참 값을 구하고 싶을 때를 얘기하는 것이다. 지금 작성하는 코드는 실제 MSDN에서 형식에 대한 값 같음을 정의하는 방법이라는 제목으로

2020년 3월 10일
·
0개의 댓글