#1 코테 준비 - 배열
프로그래밍 공부/코딩테스트 준비2022. 9. 21. 17:37#1 코테 준비 - 배열

배열 배열은 메모리상에 원소를 연속하게 배치한 자료구조이다. 1. 데이터의 크기를 정해놓기 때문에 추가적으로 소모되는 메모리의 양이 거의 없다. 2. Cache Hit Rate가 높다고 하는데 뭔지 몰라서 찾아봤다. 자주 사용하는 데이터를 빠르게 가져올 수 있는 캐시 메모리에서 원하는 데이터를 가져오려고 할때 그 데이터가 캐시에 존재할 때 Cache hit 이라고 한다. Cache Hit Rate = Cache hit 횟수 / 총 참조 횟수 깊게 파고들면 끝도 없겠지만 배열은 원소를 메모리상에 연속하게 배치하기 때문에 캐시 적중률이 높다고 한다. 3. 메모리상에 연속한 구간을 잡아야하기 때문에 할당에 제약이 있음 배열을 사용할때 시간복잡도 배열은 연속한 메모리 공간에서 인덱스로 접근 가능하기 때문에, 원..

코테 준비하기 - 기본 사항들
프로그래밍 공부/코딩테스트 준비2022. 9. 21. 11:57코테 준비하기 - 기본 사항들

예전부터 조금씩 하기는 했지만 ..작은기업을 준비하던 나에게 코테는 우선순위가 밀려 많이 하지는 못했다 , 그래도 길게보고 조금씩 준비해보려고 한다. 언어 선택 언어는 C++로 선택했다. 유니티 때문에 C#을 주로 사용했긴 하지만 코테에 있어서는 C++을 추천하는 사람들이 많기도 하고, C++이 뭔가 재밌다. STL의 숙련도도 쌓을 수 있을거라고 생각한다. bits/stdc++.h C++의 STL을 이용하기 위해 여러가지 헤더 파일들을 포함시키는데, 매번 문제를 풀때마다 포함시키는것도 여간 귀찮은 일이 아니다. 이 헤더파일을 열어보면 많이쓰는것들을 몽땅 모아놨다. 주의할점 이라면 우리가 푸는 코딩테스트 사이트들의 컴파일러는 gcc 컴파일러고 이 헤더파일이 기본 내장 되어있지만, 우리가 많이쓰는 비주얼 스..

[C#] re-throw? 그리고 throw vs throw EX
프로그래밍 공부/C# 프로그래밍2022. 9. 18. 19:09[C#] re-throw? 그리고 throw vs throw EX

Rethrow? try - catch 를 책으로 공부하고 이런저런 예제 코드들을 보면서 try절의 코드블록 안에서 throw new Exception 을 하는것이 아닌 , catch 안에서 throw를 하는 코드들을 봤었다. try { //실행할 코드 } catch { throw; } catch(Exception ex) { throw ex; } rethrow라는 문법은 따로 없지만 , 예외를 catch에서 잡아서 다시 던지는것을 rethrow라고 부르는것 같았다. 우리가 유니티에서 오류를 내서 그 오류를 눌러본다면, 아래의 사진처럼 친절하게도 어디서 부터 오류가 난건지 알려준다. 만약 오류를 낸 코드를 달랑 한줄만 알려준다면, 열결되어있는 수많은 코드들을 추적하기 어렵기때문에 이 오류의 근원지가 어디인지..

[C#] 예외처리 Try - Catch / Throw & Finally
프로그래밍 공부/C# 프로그래밍2022. 9. 18. 18:07[C#] 예외처리 Try - Catch / Throw & Finally

일들이 계획한대로 흘러가지않아 다른 계획들을 실행하지 못했다. 하지만 그래도 공부는 꾸준히 해줘야 하기에 오랜만에 예외처리에 대해 공부를 해봤다. 포트폴리오를 만들면서 try - catch를 쓴적은 없지만 다이렉트x를 살짝 배울때 C++에서 사용했었다. 오류가 나더라도 프로그램이 멈추지 않고 실행하게끔 만든다던지, 상황에 맞게 설정해둔 오류들을 로그로 찍어 어떤 문제가 있는지 파악해서 해결한다던지 쓰일 부분은 정말 많아보였다. Try - Catch 너무 쉬운 영어 단어지만 얘기해보자면 시도하다 - 잡다 라는 뜻을 가지고 있다. 시도를 해서 예외를 던지면 그 예외를 잡아서 처리하는 단순한? 방식이라고 생각이 든다. 사용할때는 아래와 같이 써주면 된다. try { //실행 하려는 코드 } catch(예외) ..

[C#] 프로퍼티란? & 자동구현 프로퍼티와 public 변수와의 차이 찾아보기
프로그래밍 공부/C# 프로그래밍2022. 8. 24. 21:58[C#] 프로퍼티란? & 자동구현 프로퍼티와 public 변수와의 차이 찾아보기

프로퍼티 사용법을 조금씩 알게되면서 정말 유용하게 사용했던게 프로퍼티였다. 프로퍼티에 대한 이해를 위해 공부한 내용을 정리해봤다. 객체지향 프로그래밍에서는 은닉성을 지키기위해 감춰둔 필드에 접근하기위한 메소드를 만들어 쓴다고한다. 예는 아래 코드와 같다. private int A; public int Get_A() { return A; } public void Set_A(int Value) { A = Value; } 위의 코드는 간단한 예시지만, 다르게 짠다면 바로 필드에 접근하는 것이 아니라 메소드를 통해 다른 안전장치를 걸어 줄수도 있다. 즉 , Class를 설계한 사람의 의도에 맞게 메소드를 통해서만 필드에 접근하도록 한다. 하지만 은닉해야 하는 변수가 한두개가 아니라면 저 메소드들을 하나하나 만들..

[C#] 메소드 오버로딩,가변 개수의 인수, 명명된 인수, this() 생성자
프로그래밍 공부/C# 프로그래밍2022. 8. 24. 03:37[C#] 메소드 오버로딩,가변 개수의 인수, 명명된 인수, this() 생성자

메소드 오버로딩 오버로딩(Overloading)은 "과적하다" 라는 뜻을 갖고있습니다. 이미 많이들 아시겠지만 프로그래밍에서 오버로딩은 과적하다 라는 뜻처럼 하나의 메소드 이름에 여러가지 구현을 올리는 것을 뜻합니다. 코드로 예시를 들어보겠습니다. class MainApp { static void Main(string[] args) { Console.WriteLine("{0}", Cal(10, 10)); Console.WriteLine("{0}", Cal(5.5f, 2.7f)); } static int Cal(int a, int b) { return a+b; } static float Cal(float a, float b) { return a+b; } } Cal 이라는 이름을 써서 매개변수를 int,fl..

image