반응형 전체 글553 Effective C# - Item 24 베이스 클래스나 인터페이스에 대해서 제네릭을 특화하지말라 제네릭 클래스나 제네릭 메서드를 작성할 때는 사용자가 가능한 안전하고 혼랍스럽지 않도록 작성해야 한다. 특히 오버로드된 메서드가 여러 개인 경우 컴파일러가 이 중 하나를 어떻게 선택하는지 정확히 알고 있어야 한다. 그리고 사용자가 명시적으로 타입을 설정한 일반 메서드보다 제네릭 메서드가 우선적으로 선택되는 경우에 대해서도 명확히 이해하고 있어야 한다. public class MyBase { } public interface IMessageWriter { void WriteMessage(); } public class MyDerived : MyBase, IMessageWriter { void IMessageWriter.WriteMessage() => Conosle.WriteLine("Inside MyDer.. 2023. 12. 18. C# - DFS/BFS 둘 중 어느것을 사용해서 문제를 풀어야 할까? DFS/BFS 둘 중 어느것을 사용해서 문제를 풀어야 할까? BFS / DFS 그래프의 모든 정점을 방문하는 문제 단순히 모든 정점을 방문하는 것이 중요한 문제의 경우 DFS, BFS 두 가지 방법 중 어느 것을 사용해도 상관없다. DFS 01 특정 경로를 찾는 경우 A부터 B까지 가는 경로를 구하는데 경로에 같은 숫자가 있으면 안된다는 문제 등 각각의 경로마다 특징을 저장해야 할때는 DFS사용한다. BFS는 경로의 특징을 가지지 못한다. 02 백트래킹 모든 가능성을 찾아 현재 시점에서 더 이상 진행할 수 없는 경우 이전 단계로 돌아가 다른 가능성을 탐색할 때 사용된다. 03 사이클 검출 그래프에서 사이클이 존재하는지 검출하는 문제 04 트리 구조 검색 트리에서 특정 노드를 찾거나 특정 조건을 만족하는 .. 2023. 12. 16. 운영체제 - 프로세스 상태, 프로세스 계층 구조(부모 프로세스, 자식 프로세스), 프로세스 생성 기법(fork,exec) PCB에 기록되는 프로세스 상태 프로세스 상태 01생성 상태(new) 이제 막 메모리에 적재되어 PCB를 할당 받은 상태이다. 생성 상태를 거쳐 실행할 준비가 완료되었다면 곧바로 실행되지 않고 준비 상태가 되어 CPU의 할당을 기다린다. 02 준비 상태(ready) 당장이라도 CPU를 할당 받아 실행할 수 있지만 아직 자신의 차례가 아니기에 기다리고 있는 상태이다. 자신의 차례가 되면 CPU를 할당 받아 실행상태가 된다. 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(dispatch)라고 한다. 03 실행 상태(running) CPU를 할당받아 실행 중인 상태를 의미한다. 할당된 시간 모두 사용시 (타이머 인터럽트가 발생하면) 다시 준비 상태가 되고 실행 도중 입출력 장치를 사용하면 입출력 .. 2023. 12. 15. 운영체제 - 프로세스 개요, 프로세스 제어 블록, 문맥 교환, 프로세스 사용자 영역 작업 관리자에서 현재 프로세스를 직접 확인할 수 있다. 포그라운드 프로세스(Foreground Process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스이다. 일반적으로 사용자가 실행한 응용프로그램이 해당된다. 사용자는 회면에서 해당 프로세스의 실행 상태를 볼 수 있다. 백그라운드 프로세스(Background Process) 사용자가 볼 수 없는 공간에서 실행되는 프로세스이다. 사용자와 직접 상호작용이 가능한 백그라운드 프로세스와 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스로 나눠진다. ex) 데몬(Daemon), 서비스(service) 작업 관리자에서 서비스를 확인할 수 있다. 모든 프로세스는 실행을 위해 CPU가 필요하다. But CPU 자원은 한정되어 있다. 즉 모든 프로세스.. 2023. 12. 15. 프로그래머스 C# - 다음 큰 숫자 문제를 이해하면 쉽게 이해할 수 있는 문제이다. 간단히 설명하자면 주어진 숫자에서 1의 갯수와 같은 다음 숫자를 구하면 된다. C#에서 Convert.ToString을 이용하면 쉽게 진법변환을 할 수 있다. (자세한 내용은 아래 게시글 참조) C# - Convert.ToString 메서드로 진수 변환(10진수를 2진수, 8진수, 16진수로) Convert.ToString 메서드 정수,실수,날짜등 다양한 데이터 유형을 문자열로 변환한다. public static string ToString(int value, int toBase); 매개변수 value : 변환할 32비트 부호 있는 정수 toBase : 변환 값의 진수로 code-piggy.tistory.com 문제 푸는 순서 01 n을 2진수로 바꾼 다음.. 2023. 12. 15. C# - Where와 Count를 사용해서 배열에 특정 요소의 개수 구하기 알고리즘 문제를 풀다보면 문제에서 특정 조건의 요소의 개수를 구할때가 나온다. Where와 Count를 이용하면 한줄로 간단히 표현할 수 있다. 배열에서 짝수 요소의 개수를 구한다고 해보자 01 기존 방법 int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int count = 0 for(int i = 0; i n % 2 == 0).Count(); Where를 통해 주어진 배열에서 짝.. 2023. 12. 15. 이전 1 ··· 25 26 27 28 29 30 31 ··· 93 다음 반응형