반응형 분류 전체보기552 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. Effective C# - Item23 타입 매개변수에 대해 메서드 제약 조건을 설정하려면 델리게이트를 활용하라 C#에서 제약 조건은 일정한 범위 내에서 사용 가능하며 기본적으로 클래스의 상속, 인터페이스 구현, 생성자 제약 등의 형태로 제한이 이루어진다. 몇 가지 경우에는 런타임에 제약 조건을 체크할 수 있는 기능이 제공되지 않기 때문에 컴파일 타임에만 확인할 수 있는 제약을 설정하는 것이 어려울 수 있다. 01 베이스 클래스의 타입이나 특정 인터페이스로 제약 조건 예를 들어, 특정 인터페이스를 구현하도록 하는 것은 가능하지만 인터페이스의 메서드 시그니처를 강제하거나 특정한 static 메서드를 반드시 구현하도록 하는 것은 어렵다. 02 class 타입이나 struct 타입으로 형태 제한 클래스 또는 구조체로 제한하는 것은 가능하지만 특정 메서드나 생성자의 존재를 강제하는 것은 기본 제약 조건에 포함되지 않다. .. 2023. 12. 15. 이전 1 ··· 25 26 27 28 29 30 31 ··· 92 다음 반응형