C#

C# (.NET) 알고리즘과 퀴즈
이 코너는 C#과 .NET을 이용한 프로그래밍 알고리즘 인터뷰 혹은 프로그래밍 관련 퀴즈를 담고 있습니다.
각 질문마다 서로 다른 여러 답변들이 나올 수 있으며, 더 좋은 알고리즘 혹은 해결 방식이 있을 수 있습니다.

레벨 필터링

번호퀴즈 질문레벨조회
1C#에서 사용되는 public, protected, private, internal의 차이점을 설명하십시오.127886
2박싱(Boxing)과 언박싱(Unboxing)에 대해 설명해 보시오.312774
3아래와 같은 Prototype을 갖는 public 델리게이트를 C#으로 적어 보시오. (1) 리턴 타입은 unsigned 16비트 정수이다 (2) 델리게이트명은 MyDelegate이다. (3) 2개의 파라미터가 있는데 첫번째는 문자열 배열,두번째는 IComparable 인터페이스이다. 27338
4System.Int32 타입으로 선언된 변수 A는 NULL을 가질 수 있습니까?17969
5GAC이란 무엇인가? 만약 동일한 DLL이 GAC에도 있고 현재 어플리케이션 디렉토리에도 있다면, 어플리케이션은 어떤 곳에 있는 DLL을 사용합니까?27240
6C#으로 다음과 같은 멤버들을 갖는 인터페이스를 선언하시오. (1) 인터페이스명은 IAction (2) ActionName이라는 문자열 속성을 갖는다. (3) Action이라는 메서드를 갖는데, 파라미터 id를 정수형으로 받아들인다. (4) Action 메서드가 끝날 때 불려지는 ActionComplete라는 이벤트를 갖는다. 35363
7텍스트 파일안에 1부터 100까지 정수가 한 라인씩 100줄 들어있다. 이 파일로부터 정수를 읽어 들여 전체 합계를 구하는 C# 프로그램을 작성하시오.25841
8인덱서(Indexer)를 가진 클래스를 쓰시오. 내부적으로 배열을 사용하는 인덱서를 간략히 구현해 보시오.35458
9C#에서 try..catch..finally 블럭을 설명하시오. 만약 try...finally만 있을 때, 에러가 발생하면 finally 블력은 실행되는가?15643
10System.String과 StringBuilder의 차이점은 무엇인지 설명하시오.15823
11.NET의 System.Array클래스에는 Array.Clone() 메서드와 Array.CopyTo() 메서드가 있는데, 이 둘의 차이점은 무엇인가?28528
12C++로 작성된 Native DLL에 있는 메서드를 C#에서 사용할 수 있는가? 만약 가능하다면, user32.dll의 EnableWindow() 함수를 C#에서 호출하는 코드를 작성하시오. (참조 : BOOL EnableWindow(HWND hWnd,BOOL bEnable); ) 44958
13추상클래스(Abstract Class)와 봉인클래스(Sealed Class)의 차이점을 설명하시오.15219
14.NET의 Debug클래스와 Trace클래스는 유사한 기능을 한다. 둘의 차이점은 무엇인가?24590
15C# 콘솔프로그램 실행시 전달된 모든 입력 파라미터들을 한 라인씩 콘솔에 다시 출력하는 프로그램을 작성하시오. 14405
16.NET에서는 어떻게 DLL HELL 문제를 해결하였는지 설명하시오.24340
17두개의 정수 a,b의 값을 서로 바꾸는 C# 코드를 쓰시오. (단, a,b이외의 임시 변수 사용 불가)35141
18아래 C#코드에서 Derived 클래스 객체를 생성하면 콘솔 화면에 어떻게 출력되는가? public class Base { public Base() { Console.WriteLine("A");} } public class Derived : Base { public Derived() { Console.WriteLine("B");} }33777
19Value Type과 Reference Type의 차이점은 무엇인가?34607
20변수 i=10, j=20, y=100 일때, 식 bool x=(i14749
21정수 i=6, j=8 일때, j+=i++ 을 실행한 후 i,j값은 무엇인가?14875
22정수 x에 곱셈연산자(*)를 쓰지 않고 16배로 만들기 위해서는 어떻게 할 수 있는가?14717
23모든 WinForm 컨트롤들은 InvokeRequired 라는 속성을 가지고 있다. 이 속성은 어떤 때 사용하는가?48732
24C++의 소멸자(Destructor)와 C#의 Destructor(Finalizer)의 차이점을 설명하시오.55007
25C#클래스에 파일 핸들이나 DB Connection같은 Unmanaged 리소스를 가지고 있을 때, 어떻게 이들 리소스를 해제할 수 있는가?56538
26C#의 using(..){...} 블럭은 언제 사용할 수 있는가?35208
271부터 5까지의 Random Number를 리턴하는 Rand5()를 이용하여, 1부터 7까지의 Random Number를 리턴하는 Rand7()함수를 작성하시오.44409
28정수 n을 이진 형식(binary format)으로 표현했을 때, 1인 bit가 몇 개인지를 계산하는 함수를 작성하시오.33582
29string 문자열을 정수로 변환하는 자신의 C# 함수를 작성하시오. (문자열은 숫자 혹은 - (마이너스)만을 갖는다고 가정)24272
30C#으로 피보나치 함수를 작성하시오.26082
31문자열을 입력받아 각 문자들을 일렬로 나열하는 순열(Permutation) 결과를 프린트하는 함수를 작성하시오 (C#)54201
32정수 N이 2의 N승 (2^n)인지를 검사하는 메서드를 작성하시오.23992
33정수N의 비트들이 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 것을 회문(Palindrome)이라 한다. 회문을 판별하는 함수 IsPalindrome()를 작성하시오.33453
34두개의 정렬된 정수형 List를 파라미터로 받아들인 후, 이를 합쳐 정렬한 결과를 리턴하는 함수를 작성하시오.33557
351원, 10원, 50원, 100원짜리 동전이 제한없이 있다고 가정했을 때, 총 90원을 만드는 방법의 수를 구하는 함수를 작성하시오.54645
36정수 배열안에 동일한 숫자가 2번씩 들어 있고 하나의 숫자만이 쌍을 이루지 않고 들어 있다. 이 하나의 숫자를 구하는 함수를 작성하시오. (정수 배열 2, 4, 9, 5, 9, 5, 7, 4, 2 일때 답은 7)33080
37미리 정렬된 정수 배열에서 두개의 배열요소를 더하여 일정한 값을 갖는 요소 쌍을 구하시오. 예를 들어, 배열 { 1, 4, 6, 9, 10, 12, 16 } 에서 합이 16이 되는 쌍을 찾으시오.33297
38한 문자열 s1안에 다른 문자열 s2의 순열(Permutation)에 해당하는 문자열을 포함하고 있는지 체크하는 함수를 작성하시오.43126
39이진트리(Binary Tree)에서 두 노드를 모두 포함하는 최소 공통 조상 노드를 구하는 코드를 작성하시오.33695
40한 문자열(혹은 문자배열)의 문자들로 만들 수 있는 모든 조합(Combination)을 출력하시오. 예를 들어, ABC의 경우, A,B,C,AB,AC,BC,ABC 를 출력하게 되고, 문자의 순서는 무관.55470
41정수 배열을 입력받아 해당 배열의 임의의 범위에 있는 정수들을 더한 값이 최대가 되는 정수 최대 합계를 구하시오.43162
42클래식 하노이의 탑 문제에는 3개의 막대기가 있고, 한 막대기에 오름차순으로 N개의 디스크가 있다. 디스크가 있는 막대기에서 다른 하나의 막대기로 모두 디스크를 옮기는데, 한번에 1개씩 옮겨야 하고, 큰 디스크는 작은 디스크 위에 올려질 수 없다는 제약 조건이 있다. 스택을 사용하여, N개의 디스크를 첫번째 막대기에서 세번째 막대기로 옮기는 프로그램을 작성하시오.43975
43정렬되지 않은 정수 배열이 있을 때, 배열을 소트하지 않고 중간값(Median)을 구하는 코드를 작성하시오.44334
44그래프(Graph)의 노드들을 Depth-First 방식으로 출력하는 코드를 작성하시오. 방향 그래프가 순환(Cyclic)구조인지를 나타내는 메서드를 작성하시오.33943
45배열에서 한 배열요소가 절반이 넘는다고 전제했을 때, 그 요소를 구하는 코드를 작성하시오. (나머지 요소들은 중복될 수도 있고 그렇지 않을 수 있으며, 별도의 메모리 사용을 O(1)으로 제한)43079
46사칙연산으로 된 문자열 산술식(Expression)의 결과를 구하는 코드를 작성하시오. (괄호는 포함되지 않았다고 가정하며, 모두 정수라고 가정함)45257
47순환 자료구조를 사용하여 Queue를 구현하시오. 34127
48A,B,C,D,E 등 5개의 작업(Task)가 있다. A와 B는 C에 의존하여 C가 끝나야만 실행된다. C는 D와 E에 의존하고, D는 E에 의존한다. 상호의존성을 고려하여 작업 순서를 구하는 코드를 작성하시오. (결과 예: D E C A B)54464
49정수값을 갖는 Matrix (N x N 2차원 배열) 에서 특정 정수값이 존재하는지 체크하는 코드를 작성하시오. 단, Matrix는 왼쪽에서 오른쪽으로 오름차순으로 그리고 위에서 아래 방향으로 오름차순으로 정렬되어 있다.44148
50이진트리의 각 레벨(Level)별로 한 라인씩 노드값들을 출력하는 코드를 작성하시오. 34760
51히스토그램 그래프에서 최대 면적값을 구하는 코드를 작성하시오.44874
52정렬된 정수 배열에서 임의의 수 k를 찾는 코드를 작성하시오. 단, 배열의 처음이 소팅의 시작점이 아님 (즉, 배열은 { 17, 19, 21, 4, 8, 10, 11 }와 같이 중간부터 소트 가능)33849
53어느 회사의 주식가격이 정수 배열에 다음과 같이 저장되어 있다. (10, 15, 11, 8, 9, 20, 0, 19) 주식을 오직 한번만 사고 팔수 있다고 할 때, 최대 수익을 내는 요소구간과 최대값을 구하는 코드를 작성하시오.54554
54정수배열과 이진검색트리를 입력받아, 입력된 정수배열이 이진검색트리(BST)를 PostOrder로 읽은 값과 동일한 지를 나타내는 코드를 작성하시오.33542
55이진트리의 각 레벨별 좌우 노드가 반대 방향으로 되도록 트리를 재구성하는 코드를 작성하시오. 즉, 첫번째 레벨이 4, 두번째 레벨이 2, 6, 세번째 레벨이 1,3,5,7 일때, 변형된 트리는 각 레벨별로 4, (6,2), (7,5,3,1)과 같이 된다.34004
56소팅되지 않은 정수 배열이 있을 때, 이 배열에서 계속 숫자가 증가되도록 배열요소를 선별했을 때, 이 선별 배열의 최대 길이는 얼마인가를 계산하는 코드를 작성하시오. 숫자 증가는 연속된 배열 요소에 있지 않아도 된다. 예를 들어, 배열 {2, 6, 4, 5, 1, 3}에 대해 최대 증가 시퀀스는 {2,4,5}로 답은 3이 된다. 43562
57단일 링크드 리스트 (Singly Linked List)를 역방향으로 변경하는 C# 코드를 작성하시오. 34233
58스택의 최소값을 리턴하는 함수 Min()을 갖는 커스텀 스택 클래스를 C# 코드를 작성하시오 (단, 이 스택의 Push(), Pop(), Min() 메서드의 Time Complexity는 모두 O(1) 이다)34279
59문자배열에서 중복되지 않는 첫 문자를 리턴하는 함수를 작성하시오. 예를 들어, 입력 문자배열이 abcabdefe 일 때, 중복되지 않는 첫 문자 c 를 리턴함.23788
60Stream으로부터 연속적으로 데이타를 받아 들일 때, 현재 싯점까지의 데이타 중 중간값(Median)을 출력하는 코드를 작성하시오. (만약 데이타 수가 짝수이면 두 중간 숫자의 평균을 중간값으로 정함)44488
61이진트리(Binary Tree)를 입력받아 그 트리가 이진검색트리(Binary Search Tree)인지를 체크하는 코드를 작성하시오.34454
621부터 100만까지의 숫자가 들어있는 배열 A 에 한 숫자만 중복되어 들어 있다(배열 A 크기 = 백만+1). 이 중복된 숫자를 구하는 함수를 작성하시오. 35730
63개미수열(Look and Say Sequence)은 연속적으로 나온 숫자의 갯수를 해당숫자 바로 뒤에 붙여 열거한다. 예를 들어 입력이 1121인 경우 1이 2개 (12) 2가 1개 (21) 그리고 1이 1개 (11) 즉 122111 이 출력된다. 1부터 시작하여 10개의 개미수열을 구하는 프로그램을 작성하라. (예상결과: 1 / 11 / 12 / 1121 / 122111 / 112213 / 12221131 ...)26061
등록건수: 63


One day during his tenure as a professor, Albert Einstein was visited by a student. "The questions on this year's exam are the same as last year's!," the young man exclaimed. "Yes," Einstein answered, "but this year all the answers are different."