본문 바로가기
Dart/Dart 100제

Dart 100제 51 ~ 60 (보충 문제)

by Maccrey Coding 2024. 8. 9.
728x90
반응형

51. 리스트를 역순으로 변환하여 출력하기

문제

Dart에서 주어진 리스트를 역순으로 변환하여 출력하세요.

코드

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  List<int> reversedNumbers = numbers.reversed.toList();
  print(reversedNumbers);  // [5, 4, 3, 2, 1]
}

설명

reversed 프로퍼티를 사용하면 리스트의 순서를 뒤집을 수 있으며, 이를 리스트 형태로 변환하려면 toList()를 호출합니다.

52. 현재 날짜와 시간 출력하기

문제

현재 날짜와 시간을 출력하세요.

코드

void main() {
  DateTime now = DateTime.now();
  print("현재 날짜와 시간: $now");
}

설명

DateTime.now() 메서드를 사용하여 현재 날짜와 시간을 가져올 수 있습니다.

53. 문자열 포맷팅을 사용하여 값 삽입하기

문제

Dart에서 문자열 포맷팅을 사용하여 값을 삽입하세요.

코드

void main() {
  String name = "Alice";
  int age = 30;
  String formattedString = "안녕하세요, 저는 $name이고 나이는 $age입니다.";
  print(formattedString);
}

설명

Dart에서는 $ 기호를 사용하여 문자열에 변수를 쉽게 삽입할 수 있습니다.

54. 다양한 데이터 타입 출력하기

문제

Dart에서 다양한 데이터 타입을 출력하는 프로그램을 작성하세요.

코드

void main() {
  int a = 10;
  double b = 3.14;
  String c = "Hello, Dart!";
  bool d = true;

  print("정수: $a");
  print("실수: $b");
  print("문자열: $c");
  print("불리언: $d");
}

설명

Dart는 다양한 기본 데이터 타입을 제공하며, print 함수를 사용하여 이러한 타입을 쉽게 출력할 수 있습니다.

55. 중첩된 리스트에서 특정 값 추출하기

문제

중첩된 리스트에서 특정 값을 추출하세요.

코드

void main() {
  List<List<int>> nestedList = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];
  int value = nestedList[1][2]; // 6
  print(value);
}

설명

중첩된 리스트에서 특정 값을 추출하기 위해 인덱스를 사용하여 리스트에 접근합니다.

56. 함수에서 여러 개의 값을 반환하고 출력하기

문제

함수에서 여러 개의 값을 반환하고 출력하세요.

코드

List<int> calculate(int a, int b) {
  int sum = a + b;
  int product = a * b;
  return [sum, product];
}

void main() {
  List<int> results = calculate(3, 4);
  print("합계: ${results[0]}, 곱셈: ${results[1]}");
}

설명

Dart에서는 리스트를 사용하여 여러 개의 값을 반환할 수 있습니다. 함수는 List를 반환하며, 반환된 값은 인덱스를 통해 접근할 수 있습니다.

57. 스택 자료구조 구현하기

문제

스택 자료구조를 구현하고 테스트하세요.

코드

class Stack<T> {
  List<T> _stack = [];

  void push(T value) {
    _stack.add(value);
  }

  T pop() {
    return _stack.removeLast();
  }

  T peek() {
    return _stack.last;
  }

  bool isEmpty() {
    return _stack.isEmpty;
  }
}

void main() {
  Stack<int> stack = Stack<int>();
  stack.push(10);
  stack.push(20);
  print(stack.peek());  // 20
  print(stack.pop());   // 20
  print(stack.pop());   // 10
  print(stack.isEmpty());  // true
}

설명

스택은 LIFO(Last In, First Out) 자료구조로, Dart에서 이를 리스트를 사용하여 구현할 수 있습니다. add 메서드를 사용하여 값을 추가하고, removeLast 메서드를 사용하여 마지막 값을 제거합니다.

58. 큐 자료구조 구현하기

문제

큐 자료구조를 구현하고 테스트하세요.

코드

class Queue<T> {
  List<T> _queue = [];

  void enqueue(T value) {
    _queue.add(value);
  }

  T dequeue() {
    return _queue.removeAt(0);
  }

  T front() {
    return _queue.first;
  }

  bool isEmpty() {
    return _queue.isEmpty;
  }
}

void main() {
  Queue<int> queue = Queue<int>();
  queue.enqueue(10);
  queue.enqueue(20);
  print(queue.front());  // 10
  print(queue.dequeue());  // 10
  print(queue.dequeue());  // 20
  print(queue.isEmpty());  // true
}

설명

큐는 FIFO(First In, First Out) 자료구조로, 리스트의 add와 removeAt(0) 메서드를 사용하여 구현할 수 있습니다.

59. 객체 비교하기

문제

두 객체가 동일한지 비교하는 메서드를 작성하세요.

코드

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  @override
  bool operator ==(Object other) {
    if (identical(this, other)) return true;
    return other is Person && other.name == name && other.age == age;
  }

  @override
  int get hashCode => name.hashCode ^ age.hashCode;
}

void main() {
  Person p1 = Person("Alice", 30);
  Person p2 = Person("Alice", 30);
  print(p1 == p2);  // true
}

설명

Dart에서는 == 연산자를 오버라이드하여 객체의 동등성을 정의할 수 있습니다. hashCode도 함께 오버라이드하여 객체가 올바르게 해시될 수 있도록 합니다.

60. 디폴트 매개변수 사용하기

문제

함수에 디폴트 매개변수를 정의하고 호출하세요.

코드

void greet(String name, {String greeting = "Hello"}) {
  print("$greeting, $name!");
}

void main() {
  greet("Alice");
  greet("Bob", greeting: "Hi");
}

설명

Dart에서는 중괄호를 사용하여 명명된 인수와 디폴트 매개변수를 정의할 수 있습니다.

호출 시 디폴트 값을 사용할지, 아니면 다른 값을 사용할지를 선택할 수 있습니다.

 

이 블로그에서는 Dart 언어를 활용하여 다양한 문제를 해결하는 방법을 살펴보았습니다.

각각의 코드 예제와 함께 설명을 통해 이해를 돕고자 하였으며, 이를 통해 Dart의 기본적인 문법과 기능을 익히는 데 도움이 되었길 바랍니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

728x90
반응형