728x90
반응형
81. 날짜 계산하기: 두 날짜 사이의 차이를 계산하세요.
문제
두 날짜를 입력받아, 두 날짜 사이의 차이를 일(day) 단위로 계산하는 프로그램을 작성하세요.
풀이
Dart에서는 DateTime 클래스를 사용하여 날짜를 쉽게 다룰 수 있습니다. 두 날짜 사이의 차이는 difference 메서드를 사용하여 구할 수 있습니다.
void main() {
DateTime date1 = DateTime(2024, 8, 1);
DateTime date2 = DateTime(2024, 8, 26);
Duration difference = date2.difference(date1);
print('두 날짜 사이의 차이는 ${difference.inDays}일 입니다.');
}
설명
- DateTime 객체를 사용하여 날짜를 설정하고, difference 메서드를 통해 두 날짜의 차이를 구합니다.
- inDays 속성을 이용해 차이를 일(day) 단위로 변환하여 출력합니다.
82. 파일 압축하기: 파일을 압축하고 압축 해제하는 프로그램을 작성하세요.
문제
Dart를 사용하여 파일을 압축하고, 압축된 파일을 해제하는 프로그램을 작성하세요.
풀이
Dart의 archive 패키지를 사용하면 파일을 쉽게 압축하고 해제할 수 있습니다.
import 'dart:io';
import 'package:archive/archive.dart';
import 'package:archive/archive_io.dart';
void main() {
// 파일 압축하기
var encoder = ZipFileEncoder();
encoder.create('example.zip');
encoder.addFile(File('example.txt'));
encoder.close();
// 파일 압축 해제하기
var bytes = File('example.zip').readAsBytesSync();
var archive = ZipDecoder().decodeBytes(bytes);
for (var file in archive) {
var filename = file.name;
if (file.isFile) {
var data = file.content as List<int>;
File('decompressed_$filename')
..createSync(recursive: true)
..writeAsBytesSync(data);
}
}
}
설명
- archive 패키지를 사용하여 ZIP 파일을 만들고, 기존 파일을 압축합니다.
- 압축된 ZIP 파일을 해제하고, 해제된 파일을 새로운 파일로 저장합니다.
83. 중복 제거하기: 리스트에서 중복된 값을 제거하고 출력하세요.
문제
리스트에 있는 중복된 값을 제거하고, 중복이 제거된 리스트를 출력하는 프로그램을 작성하세요.
풀이
Dart에서 리스트의 중복을 제거하려면, Set을 사용할 수 있습니다. Set은 고유한 값만을 저장하므로 중복된 값을 자동으로 제거해줍니다.
void main() {
List<int> numbers = [1, 2, 2, 3, 4, 4, 5, 6, 6];
List<int> uniqueNumbers = numbers.toSet().toList();
print('중복 제거 후: $uniqueNumbers');
}
설명
- 리스트를 Set으로 변환하면 중복이 제거됩니다.
- 다시 Set을 리스트로 변환하여 중복이 제거된 결과를 출력합니다.
84. 내장 함수 사용하기: Dart 내장 함수를 사용하여 배열의 최솟값과 최댓값을 찾으세요.
문제
배열에서 최솟값과 최댓값을 찾아 출력하는 프로그램을 작성하세요.
풀이
Dart의 min과 max 함수를 사용하여 배열의 최솟값과 최댓값을 쉽게 구할 수 있습니다.
import 'dart:math';
void main() {
List<int> numbers = [5, 1, 9, 2, 10, 3];
int minValue = numbers.reduce(min);
int maxValue = numbers.reduce(max);
print('최솟값: $minValue');
print('최댓값: $maxValue');
}
설명
- reduce 메서드는 리스트의 모든 값을 순차적으로 비교하여 최솟값과 최댓값을 찾을 때 사용합니다.
- min과 max는 각각 최소와 최대 값을 반환하는 Dart 내장 함수입니다.
85. 문자열의 단어 수 세기: 문자열에서 단어의 개수를 세어 출력하세요.
문제
주어진 문자열에서 단어의 개수를 세는 프로그램을 작성하세요.
풀이
Dart의 split 메서드를 사용하여 문자열을 공백 기준으로 나눈 후, 리스트의 길이를 구하면 단어의 개수를 알 수 있습니다.
void main() {
String sentence = "Dart is a powerful language";
List<String> words = sentence.split(' ');
print('단어의 개수: ${words.length}');
}
설명
- split 메서드는 문자열을 공백을 기준으로 나누어 리스트로 변환합니다.
- 리스트의 길이를 구하여 단어의 개수를 출력합니다.
공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
728x90
반응형
'Dart > Dart 100제' 카테고리의 다른 글
Dart 100제 91 ~ 95 (데이터 처리) (0) | 2024.08.26 |
---|---|
Dart 100제 86 ~ 90 (실용문제) (0) | 2024.08.26 |
Dart 100제 71 ~ 75 (라이브러리와 패키지) (0) | 2024.08.11 |
Dart 100제 66 ~ 70 (예외 처리) (0) | 2024.08.11 |
Dart 100제 61 ~ 65 (문자열과 정규 표현식) (0) | 2024.08.09 |