트랙
/
C#
C#
/
연습 문제
/
트랙 위의 트랙 위의 트랙
트랙 위의 트랙 위의 트랙

트랙 위의 트랙 위의 트랙

학습 연습 문제

소개

제네릭 형식

컬렉션 정의에는 보통 꺾쇠괄호 안에 자리 표시자가 들어가며, 관례상 흔히 T를 사용해요. 이런 컬렉션을 제네릭 형식이라고 해요. 이렇게 하면 컬렉션 사용자가 컬렉션에 어떤 형식의 항목을 저장할지 지정할 수 있어요. 아래 예제 코드에서는 문자열 배열을 인스턴스화하고 있어요.

배열

C#의 배열은 기본 값이나 구조체 또는 클래스의 인스턴스를 모아 놓은 컬렉션이에요. 이들은 기본 클래스 라이브러리에서 List<T>로 구현되어 있어요. 여기서 T는 배열에 들어 있는 항목의 형식이에요. API는 배열을 만들고 조작하기 위한 다양한 메서드를 제공해요.

항목은 배열에 추가하거나 배열에서 제거할 수 있어요. 필요에 따라 크기가 커지거나 작아져요.

var listOfStrings = new List<string>();

지침

이 연습 문제에서는 Exercism에서 배우고 싶은 프로그래밍 언어 목록을 관리하는 코드를 작성해요.

아홉 개의 과제가 있고, 모두 배열을 다루는 내용이에요.

1. 새 배열 만들기

배우고 싶은 언어를 관리하려면 새 배열을 만들어야 해요.

새롭고 비어 있는 배열을 반환하는 정적 Languages.NewList() 메서드를 구현해요.

Languages.NewList()
// => empty list

2. 기존 배열 정의하기

지금은 배우고 싶은 언어가 적힌 종이 한 장이 있어요: C#, Clojure, Elm.

이 배열을 반환하도록 정적 Languages.GetExistingLanguages() 메서드를 구현해요.

Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}

3. 배열에 새 언어 추가하기

Exercism을 둘러보면서 더 흥미로운 언어를 찾으면, 그 언어를 배열에 추가하고 싶어질 거예요.

배열의 끝에 새 언어를 추가하는 정적 Languages.AddLanguage() 함수를 구현해요.

Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}

4. 배열에 있는 언어 세기

언어를 하나씩 세는 건 불편해요.

배열에 있는 언어의 개수를 세는 정적 Languages.CountLanguages() 메서드를 구현해요.

Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3

5. 배열에 특정 언어가 있는지 확인하기

언어가 있는지 확인하는 정적 Languages.HasLanguage() 메서드를 구현해요.

Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true

6. 배열 뒤집기

어느 순간, 배열이 사실 거꾸로 정렬되어 있다는 걸 깨닫게 돼요!

배열을 뒤집는 정적 Languages.ReverseList() 메서드를 구현해요.

Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}

7. 배열이 흥미로운지 확인하기

모든 언어를 사랑하지만, C#은 마음속에 특별한 자리가 있어요. 그래서 다음 조건 중 하나라도 참이면 그 언어 배열에 정말 흥미를 느껴요:

  • 배열의 첫 번째가 C#이에요.
  • 배열의 두 번째 항목이 C#이고, 배열에 언어가 두 개나 세 개 들어 있어요.

언어 배열이 흥미로운지 확인하는 정적 Languages.IsExciting() 메서드를 구현해요:

Languages.IsExciting(Languages.GetExistingLanguages())
// => true

8.언어 제거하기

배열에서 지정한 언어를 제거하는 정적 Languages.RemoveLanguage() 메서드를 구현해요.

Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }

9. 배열의 모든 언어가 고유한지 확인하기

배열에서 같은 언어가 반복되는지 확인하는 정적 Languages.IsUnique() 메서드를 구현해요.

이 메서드가 호출될 때 언어 배열(즉, 매개변수)은 비어 있지 않다고 보장되며, 배열이 수정되는지는 상관없어요.

Languages.IsUnique(Languages.GetExistingLanguages())
// => true
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
C# Exercism

트랙 위의 트랙 위의 트랙 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 C# 트랙을 개념 62개연습 문제 178개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.