728x90
반응형

C# 44

C#에서의 GC(Garbage Collector), 가비지 컬렉터

C#에서는 닷넷프레임워크가 제공하는 자동메모리관리를 이용한다. **C/C++에서는 Memory leak가 쉽게 일어남. 닷넷프레임워크에서는 Managed heap 이나 Stack에다 메모리를 할당한다. 아래 그림을 살짝 보자. 위에서 Managed heap과 Stack을 쓴다고 했다. value type은 스택에 할당되고, LIFO reference type은 힙에 할당된다 **해당 범위(scope)를 벗어나면 스택에 있는 값은 자동 소멸된다. **하나라도 참조하고 있으면 힙의 값은 소멸되지 않는다. CLR(공통언어런타임, Common Language Runtime)이 어플리케이션을 위한 메모리 공간을 확보한다. 아래와 같이 힙을 확보한다. (reference 타입) ?? 스택에 저장되는 것은 뭔데?? ..

CS Interview 2021.06.05

C#에 대한 모든 특징, The features of C#

우리나라에서 그렇게 수요가 많지는 않지만 외국에서 수요가 많은 C# 정확히 .NET 계열.. C#에 대해서 알아보자 C#은 닷넷 프레임워크 위에서 실행된다.(범용성이 좋은 이유) ** .NET Framework는 MS에서 개발한 윈도우 프로그램 개발 및 실행 환경이다. 동작은 공통 언어 기반, CLI ( Common Language Infrastructure) 통해서 이루어진다.공통이라는 단어가 주는 어감이 있듯CLI는 프로그래밍 언어에 무관하게 동작하는 환경을 만들어 준다. 자바의 VM 같은 느낌이다.C# 외에도 다른 언어가 있지만 각 언어에 해당하는 컴파일러가 공통 중간 언어, CIL( Common Intermediate Language)로 변환해준다.또한 그 중간언어는 공통 언어 런타임, CLR (..

주어진 좌표에서 가장 가까운 값 추출하기 - C#, Unity

물론 어렵진 않았고 어떻게 해야할 지는 알았으나 언어를 많이 배우면 단점이... 내가 아는 함수가 이 언어에도 있나? 파라미터는 다르지 않나? 헤더를 include인가? import인가?? 가 헷갈린다. https://www.codingame.com/ide/puzzle/defibrillators 아무튼 어렵진 않았다. # 풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; using System.Globalization; /** * Auto-generated code below aims at helping you parse..

2진법 규칙에 맞춰서 출력하기 - C#

내가 돌려서 풀었을지도.. 다른 풀이가 있을 것 같긴하더라. 그래도 나랑 시간복잡도 차이는 크지 않을 것 같아 생략. https://www.codingame.com/ide/puzzle/chuck-norris 위의 규칙을 바탕으로 구현한다. #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. **/ class Soluti..

주어진 글자 디스플레이에 출력하기 - Unity

뭐 C#이다만 Unity에서도 응용가능하니까.. 솔직히 처음에 쉽다고 생각했지만 조금 시간이 걸렸고 정규표현식으로 더 완벽하게 하려고 시간 더 걸렸다. https://www.codingame.com/ide/puzzle/ascii-art 또한 '?' 가 Z 다음 아스키코드 문자가 아니기 때문에 예외처리를 해줬어야 했다. 이런 거지같은 ㅋㅋㅋㅋㅋ 아스키코드 값을 뭘로 주든 순서대로 준다면 모든 문자를 디스플레이에 표시할 수 있는 코드다. 물론 정규표현식이나 ToUpper() 같은 것은 조금 수정해야겠지만 아무튼 그렇다.

주어진 기준에 가장 가까운 값 출력하기 - Unity

이건 조금 생각해봐야 했던 문제다. 최솟값임을 알기 위해서는 모든 데이터를 훑어봐야하고 최솟값을 구했다면 해당하는 값이 무엇인지 조사해봐야했다. https://www.codingame.com/ide/puzzle/temperatures #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. **/ class Solution ..

오브젝트를 해당 위치로 옮기기 - Unity

이 문제도 기본적이면서 어려운 문제일 수 있다. 이 역시 생각의 흐름을 써놓아야 하기 때문에 기록한다 https://www.codingame.com/ide/puzzle/power-of-thor-episode-1 #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. * --- * Hint: You can use the de..

가장 큰 값부터 없애기 - C#

뭐 어렵지 않은데 어떤 언어로도 구현할 수 있으려면 내 생각 과정을 자세히 적어야 할 것 같아서 기록한다. https://www.codingame.com/ide/puzzle/the-descent #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * The while loop represents the game. * Each iteration represents a turn of the game * where you are given inputs (the heights of the mountains) * and w..

Race Condition, 자원 경쟁, 경쟁상태 [Unity]

운영체제에서 세마포어, 뮤텍스... 등으로 많이 배운 Race Condition이다. 그렇게 Low하게 가지는 않을 것이고.. 유니티 내에서 조작해보자 맨 밑에 요약있음 우리는 유니티에서 값을 Initilaizing 후 사용한다. 하지만 Start()에 넣을 수도, Awake()에 넣을 수도 있다. 때문에 초기화 도중 만들어지기도 Object에 접근하는 상황이 발생해서 맨날 일어나는게 NullReferenceException Error다. 물론 Awake에 있는 것을 Start로 보낼 수 있으나.. 다른 방법도 존재한다는 것을 알아두자 스크립트 또한 우리가 실행순서를 정할 수 있다. 유니티 메뉴바에서 Edit -> Project Settings에 들어가서 아래와 같이 찾아볼 수 있다. 요약 1. Even..

Enumeration, 열거,나열 [Unity]

바로 본론으로 들어가자. Enums은 보통 클래스를 정의할 때 클래스의 property 값을 정할 때 사용될 수 있다. 변수가 적절한 값을 갖게할 수 있고 숫자를 문자열로 나타낼 수 있다. public enum ePetType{ none, dog, cat, bird, fish, other } 이와 같이 그냥 나열하면 된다. 대부분 클래스 밖에서 정의된다. ** enum은 따로 선언되지 않으면 순서대로 값을 가진다. none = 0, dog = 1 ... 이런 식으로 public enum eLifeStage{ baby, teen, adult, senior, deceased } 이제 클래스에서 사용해볼까 물론 사용할 때 enum's type으로 사용하면 된다. 아래의 ePetType처럼 자료형을 저렇게 쓴다..

728x90
반응형