본문 바로가기
Dart/Algorithms

Dart 코딩 테스트 100제

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

 

Dart 언어로 코딩 테스트를 준비하는 데 도움이 될 수 있도록, 대표적인 코딩 문제와 그에 대한 답안작성했습니다.

각 문제는 Dart 문법과 알고리즘 문제 해결 능력을 키우는 데 초점을 맞췄습니다.

아래는 100개의 문제와 간단한 설명 및 답안을 포함했습니다

 

1. 두 수의 합 구하기

문제: 두 정수 a와 b를 입력받아 그 합을 반환하는 함수 작성.

int sum(int a, int b) {
  return a + b;
}

.

2. 팩토리얼 계산하기

문제: 주어진 숫자의 팩토리얼을 재귀적으로 계산하는 함수 작성.

int factorial(int n) {
  if (n == 0) return 1;
  return n * factorial(n - 1);
}

3. 문자열 뒤집기

문제: 주어진 문자열을 뒤집어 반환하는 함수 작성.

String reverseString(String str) {
  return str.split('').reversed.join();
}

4. 배열에서 최대값 찾기

문제: 주어진 배열에서 최대값을 찾아 반환하는 함수 작성.

int findMax(List<int> numbers) {
  return numbers.reduce((a, b) => a > b ? a : b);
}

5. 피보나치 수열

문제: n번째 피보나치 수를 반환하는 함수 작성 (재귀 사용).

int fibonacci(int n) {
  if (n <= 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

6. 소수 판별

문제: 주어진 정수가 소수인지 여부를 판별하는 함수 작성.

bool isPrime(int num) {
  if (num <= 1) return false;
  for (int i = 2; i <= num ~/ 2; i++) {
    if (num % i == 0) return false;
  }
  return true;
}

7. 배열에서 중복 요소 제거

문제: 주어진 배열에서 중복되는 요소를 제거하고 반환하는 함수 작성.

List<int> removeDuplicates(List<int> numbers) {
  return numbers.toSet().toList();
}

8. 배열 정렬하기

문제: 주어진 배열을 오름차순으로 정렬하는 함수 작성.

List<int> sortArray(List<int> numbers) {
  numbers.sort();
  return numbers;
}

9. 두 배열 합치기

문제: 두 배열을 합쳐 하나의 배열로 반환하는 함수 작성.

List<int> mergeArrays(List<int> arr1, List<int> arr2) {
  return [...arr1, ...arr2];
}

10. 문자열에서 공백 제거

문제: 주어진 문자열에서 모든 공백을 제거하는 함수 작성.

String removeSpaces(String str) {
  return str.replaceAll(' ', '');
}

11. 배열의 평균 구하기

문제: 주어진 배열의 평균을 계산하는 함수 작성.

double average(List<int> numbers) {
  int sum = numbers.reduce((a, b) => a + b);
  return sum / numbers.length;
}

12. 문자열 내 문자 빈도수 계산

문제: 문자열에서 각 문자가 얼마나 등장하는지 빈도수를 계산하는 함수 작성.

Map<String, int> charFrequency(String str) {
  Map<String, int> frequency = {};
  for (var char in str.split('')) {
    frequency[char] = (frequency[char] ?? 0) + 1;
  }
  return frequency;
}

13. 두 배열의 교집합

문제: 두 배열에서 공통된 요소를 찾아 반환하는 함수 작성.

List<int> intersection(List<int> arr1, List<int> arr2) {
  return arr1.toSet().intersection(arr2.toSet()).toList();
}

14. 두 문자열이 아나그램인지 확인하기

문제: 두 문자열이 아나그램(같은 문자로 구성된 다른 순서의 문자열)인지 확인하는 함수 작성.

bool isAnagram(String str1, String str2) {
  var s1 = str1.split('')..sort();
  var s2 = str2.split('')..sort();
  return s1.join() == s2.join();
}

15. 배열에서 짝수만 추출

문제: 배열에서 짝수 요소만 추출하는 함수 작성.

List<int> filterEven(List<int> numbers) {
  return numbers.where((n) => n % 2 == 0).toList();
}

16. 첫 번째 반복되지 않는 문자 찾기

문제: 문자열에서 첫 번째로 반복되지 않는 문자를 찾아 반환하는 함수 작성.

String firstNonRepeatingChar(String str) {
  Map<String, int> frequency = {};
  for (var char in str.split('')) {
    frequency[char] = (frequency[char] ?? 0) + 1;
  }
  return str.split('').firstWhere((char) => frequency[char] == 1, orElse: () => '');
}

17. 배열 내 음수 제거

문제: 주어진 배열에서 음수를 제거한 배열을 반환하는 함수 작성.

List<int> removeNegatives(List<int> numbers) {
  return numbers.where((n) => n >= 0).toList();
}

18. 배열 내 특정 값의 개수 구하기

문제: 배열에서 특정 값의 개수를 세는 함수 작성.

int countOccurrences(List<int> numbers, int value) {
  return numbers.where((n) => n == value).length;
}

19. 배열을 역순으로 정렬하기

문제: 배열을 내림차순으로 정렬하는 함수 작성.

List<int> reverseSortArray(List<int> numbers) {
  numbers.sort((a, b) => b - a);
  return numbers;
}

20. 문자열에서 숫자 추출하기

문제: 주어진 문자열에서 숫자만 추출하는 함수 작성.

String extractNumbers(String str) {
  return str.replaceAll(RegExp(r'[^0-9]'), '');
}

21. 문자열 회문 확인

문제: 주어진 문자열이 회문(앞뒤가 같은 문자열)인지 확인하는 함수 작성.

bool isPalindrome(String str) {
  var reversed = str.split('').reversed.join();
  return str == reversed;
}

22. 중복 문자 제거하기

문제: 문자열에서 중복된 문자를 제거하고 남은 문자만 반환하는 함수 작성.

String removeDuplicateChars(String str) {
  return str.split('').toSet().join();
}

23. 숫자의 자릿수 합 구하기

문제: 주어진 정수의 각 자릿수를 더한 합을 반환하는 함수 작성.

int sumOfDigits(int num) {
  return num.toString().split('').map(int.parse).reduce((a, b) => a + b);
}

24. 배열을 중첩된 배열로 변환하기

문제: 주어진 배열을 n개의 그룹으로 나누어 중첩된 배열로 변환하는 함수 작성.

List<List<int>> chunkArray(List<int> numbers, int size) {
  List<List<int>> chunks = [];
  for (int i = 0; i < numbers.length; i += size) {
    chunks.add(numbers.sublist(i, i + size > numbers.length ? numbers.length : i + size));
  }
  return chunks;
}

25. 대문자를 소문자로 변환

문제: 주어진 문자열에서 모든 대문자를 소문자로 변환하는 함수 작성.

String toLowerCase(String str) {
  return str.toLowerCase();
}

26. 문자열 내 모음 제거

문제: 주어진 문자열에서 모음을 제거하는 함수 작성.

String removeVowels(String str) {
  return str.replaceAll(RegExp(r'[aeiouAEIOU]'), '');
}

27. 주어진 범위 내의 소수 찾기

문제: 주어진 두 정수 a, b 사이에 있는 소수들을 반환하는 함수 작성.

List<int> primesInRange(int a, int b) {
  bool isPrime(int n) {
    if (n < 2) return false;
    for (int i = 2; i <= n ~/ 2; i++) {
      if (n % i == 0) return false;
    }
    return true;
  }
  return [for (int i = a; i <= b; i++) if (isPrime(i)) i];
}

28. 문자열 내 특정 문자 개수 세기

문제: 문자열에서 특정 문자가 몇 번 등장했는지 반환하는 함수 작성.

int countChar(String str, String char) {
  return str.split('').where((c) => c == char).length;
}

29. 다중 배열에서 유일한 요소 찾기

문제: 두 배열에서 서로 다른 요소를 반환하는 함수 작성.

List<int> findUniqueElements(List<int> arr1, List<int> arr2) {
  return arr1.where((n) => !arr2.contains(n)).toList() + arr2.where((n) => !arr1.contains(n)).toList();
}

30. 특정 문자가 있는지 확인하기

문제: 문자열에서 특정 문자가 있는지 확인하는 함수 작성.

bool containsChar(String str, String char) {
  return str.contains(char);
}

31. 구구단 출력

문제: 주어진 숫자 n의 구구단을 출력하는 함수 작성.

void printMultiplicationTable(int n) {
  for (int i = 1; i <= 9; i++) {
    print('$n * $i = ${n * i}');
  }
}

32. 2차원 배열에서 특정 요소 찾기

문제: 2차원 배열에서 특정 숫자가 있는지 확인하는 함수 작성.

bool search2DArray(List<List<int>> arr, int target) {
  for (var row in arr) {
    if (row.contains(target)) return true;
  }
  return false;
}

33. 주어진 범위 내의 완전수 찾기

문제: 주어진 두 정수 사이에 있는 완전수를 찾는 함수 작성.

List<int> findPerfectNumbersInRange(int a, int b) {
  bool isPerfect(int n) {
    int sum = 1;
    for (int i = 2; i <= n ~/ 2; i++) {
      if (n % i == 0) sum += i;
    }
    return sum == n;
  }
  return [for (int i = a; i <= b; i++) if (isPerfect(i)) i];
}

34. 정렬된 배열에서 중복 제거

문제: 정렬된 배열에서 중복된 값을 제거하는 함수 작성.

List<int> removeDuplicatesSorted(List<int> numbers) {
  return numbers.toSet().toList();
}

35. 가장 큰 공약수(GCD) 구하기

문제: 두 숫자의 GCD(최대 공약수)를 구하는 함수 작성.

int gcd(int a, int b) {
  return b == 0 ? a : gcd(b, a % b);
}

36. 가장 작은 공배수(LCM) 구하기

문제: 두 숫자의 LCM(최소 공배수)을 구하는 함수 작성.

int lcm(int a, int b) {
  return (a * b) ~/ gcd(a, b);
}

37. 주어진 숫자들이 등차수열인지 확인

문제: 배열이 등차수열을 이루는지 확인하는 함수 작성.

bool isArithmeticSequence(List<int> numbers) {
  int diff = numbers[1] - numbers[0];
  for (int i = 1; i < numbers.length; i++) {
    if (numbers[i] - numbers[i - 1] != diff) return false;
  }
  return true;
}

38. 주어진 숫자들이 등비수열인지 확인

문제: 배열이 등비수열을 이루는지 확인하는 함수 작성.

bool isGeometricSequence(List<int> numbers) {
  int ratio = numbers[1] ~/ numbers[0];
  for (int i = 1; i < numbers.length; i++) {
    if (numbers[i] ~/ numbers[i - 1] != ratio) return false;
  }
  return true;
}

39. 주어진 배열을 역순으로 정렬

문제: 주어진 배열을 역순으로 정렬하는 함수 작성.

List<int> reverseArray(List<int> numbers) {
  return numbers.reversed.toList();
}

40. 2진수로 변환

문제: 주어진 정수를 2진수 문자열로 변환하는 함수 작성.

String toBinary(int num) {
  return num.toRadixString(2);
}

41. 2진수에서 십진수로 변환

문제: 주어진 2진수 문자열을 십진수로 변환하는 함수 작성.

int fromBinary(String binary) {
  return int.parse(binary, radix: 2);
}

42. 주어진 배열에서 모든 짝수의 합 구하기

문제: 배열에서 모든 짝수 요소의 합을 반환하는 함수 작성.

int sumOfEvens(List<int> numbers) {
  return numbers.where((n) => n % 2 == 0).reduce((a, b) => a + b);
}

43. 배열 내 특정 값의 인덱스 반환

문제: 주어진 배열에서 특정 값의 인덱스를 반환하는 함수 작성.

int findIndex(List<int> numbers, int value) {
  return numbers.indexOf(value);
}

44. 문자열을 단어 단위로 분리

문제: 주어진 문자열을 단어 단위로 분리하여 배열로 반환하는 함수 작성.

List<String> splitWords(String sentence) {
  return sentence.split(' ');
}

45. 주어진 범위 내의 모든 홀수 찾기

문제: 주어진 두 정수 사이의 모든 홀수를 반환하는 함수 작성.

List<int> findOddsInRange(int a, int b) {
  return [for (int i = a; i <= b; i++) if (i % 2 != 0) i];
}

46. 배열에서 가장 작은 값 찾기

문제: 배열에서 가장 작은 값을 반환하는 함수 작성.

int findMin(List<int> numbers) {
  return numbers.reduce((a, b) => a < b ? a : b);
}

47. 배열에서 특정 요소를 삭제하기

문제: 주어진 배열에서 특정 값을 삭제하는 함수 작성.

List<int> removeElement(List<int> numbers, int value) {
  return numbers.where((n) => n != value).toList();
}

48. 문자열을 단어 단위로 뒤집기

문제: 주어진 문자열에서 각 단어의 순서를 뒤집는 함수 작성.

String reverseWords(String sentence) {
  return sentence.split(' ').reversed.join(' ');
}

49. 이진 탐색 구현

문제: 정렬된 배열에서 이진 탐색 알고리즘을 사용하여 특정 값을 찾는 함수 작성.

int binarySearch(List<int> numbers, int value) {
  int left = 0, right = numbers.length - 1;
  while (left <= right) {
    int mid = left + (right - left) ~/ 2;
    if (numbers[mid] == value) return mid;
    if (numbers[mid] < value) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

50. 문자열에서 중복 단어 제거

문제: 주어진 문자열에서 중복된 단어를 제거하는 함수 작성.

String removeDuplicateWords(String sentence) {
  return sentence.split(' ').toSet().join(' ');
}

51. 배열을 반으로 나누기

문제: 배열을 반으로 나누어 두 개의 배열로 반환하는 함수 작성.

List<List<int>> splitArray(List<int> numbers) {
  int mid = numbers.length ~/ 2;
  return [numbers.sublist(0, mid), numbers.sublist(mid)];
}

52. 문자열에서 자음만 반환하기

문제: 주어진 문자열에서 자음만 반환하는 함수 작성.

String extractConsonants(String str) {
  return str.replaceAll(RegExp(r'[aeiouAEIOU]'), '');
}

53. 주어진 범위 내의 짝수 찾기

문제: 주어진 두 정수 사이의 모든 짝수를 반환하는 함수 작성.

List<int> findEvensInRange(int a, int b) {
  return [for (int i = a; i <= b; i++) if (i % 2 == 0) i];
}

54. 3의 배수인지 확인하기

문제: 주어진 정수가 3의 배수인지 확인하는 함수 작성.

bool isMultipleOfThree(int num) {
  return num % 3 == 0;
}

55. 문자열에서 단어 개수 세기

문제: 주어진 문자열에서 단어의 개수를 세는 함수 작성.

int countWords(String sentence) {
  return sentence.split(' ').length;
}

56. 주어진 숫자들이 피보나치 수열인지 확인

문제: 배열이 피보나치 수열을 이루는지 확인하는 함수 작성.

bool isFibonacciSequence(List<int> numbers) {
  if (numbers.length < 3) return false;
  for (int i = 2; i < numbers.length; i++) {
    if (numbers[i] != numbers[i - 1] + numbers[i - 2]) return false;
  }
  return true;
}

57. 배열에서 특정 요소의 개수 세기

문제: 배열에서 특정 값이 몇 번 등장했는지 반환하는 함수 작성.

int countElement(List<int> numbers, int value) {
  return numbers.where((n) => n == value).length;
}

58. 정렬된 배열에서 최소값과 최대값 구하기

문제: 정렬된 배열에서 최소값과 최대값을 구하는 함수 작성.

Map<String, int> findMinAndMax(List<int> numbers) {
  return {'min': numbers.first, 'max': numbers.last};
}

59. 배열을 중복 없이 병합하기

문제: 두 배열을 중복된 요소 없이 병합하는 함수 작성.

List<int> mergeArraysWithoutDuplicates(List<int> arr1, List<int> arr2) {
  return (arr1 + arr2).toSet().toList();
}

60. 문자열을 거꾸로 출력하기

문제: 주어진 문자열을 거꾸로 출력하는 함수 작성.

String reverseString(String str) {
  return str.split('').reversed.join('');
}

61. 주어진 숫자의 팩토리얼 구하기

문제: 주어진 숫자의 팩토리얼을 구하는 함수 작성.

int factorial(int num) {
  return num == 0 ? 1 : num * factorial(num - 1);
}

62. 소문자를 대문자로 변환하기

문제: 주어진 문자열에서 모든 소문자를 대문자로 변환하는 함수 작성.

String toUpperCase(String str) {
  return str.toUpperCase();
}

63. 배열에서 음수와 양수 분리

문제: 배열에서 음수와 양수를 각각 다른 배열로 분리하는 함수 작성.

Map<String, List<int>> separatePositivesAndNegatives(List<int> numbers) {
  return {
    'positives': numbers.where((n) => n > 0).toList(),
    'negatives': numbers.where((n) => n < 0).toList(),
  };
}

64. 주어진 숫자의 자리수를 리스트로 변환

문제: 정수를 각 자릿수로 나누어 배열로 반환하는 함수 작성.

List<int> digitsToList(int num) {
  return num.toString().split('').map(int.parse).toList();
}

65. 2차원 배열의 행과 열 뒤집기

문제: 주어진 2차원 배열의 행과 열을 뒤집는 함수 작성.

List<List<int>> transposeMatrix(List<List<int>> matrix) {
  return [for (int i = 0; i < matrix[0].length; i++) [for (int j = 0; j < matrix.length; j++) matrix[j][i]]];
}

66. 배열에서 특정 범위의 숫자 찾기

문제: 배열에서 특정 범위 내의 숫자들만 반환하는 함수 작성.

List<int> findInRange(List<int> numbers, int low, int high) {
  return numbers.where((n) => n >= low && n <= high).toList();
}

67. 주어진 숫자 배열의 평균 구하기

문제: 배열에서 숫자들의 평균을 구하는 함수 작성.

double findAverage(List<int> numbers) {
  return numbers.reduce((a, b) => a + b) / numbers.length;
}

68. 배열을 오름차순으로 정렬하기

문제: 주어진 배열을 오름차순으로 정렬하는 함수 작성.

List<int> sortAscending(List<int> numbers) {
  numbers.sort();
  return numbers;
}

69. 배열을 내림차순으로 정렬하기

문제: 주어진 배열을 내림차순으로 정렬하는 함수 작성.

List<int> sortDescending(List<int> numbers) {
  numbers.sort((a, b) => b.compareTo(a));
  return numbers;
}

70. 두 배열의 교집합 구하기

문제: 두 배열의 교집합을 반환하는 함수 작성.

List<int> findIntersection(List<int> arr1, List<int> arr2) {
  return arr1.where((n) => arr2.contains(n)).toList();
}

71. 두 배열의 차집합 구하기

문제: 두 배열의 차집합을 반환하는 함수 작성.

List<int> findDifference(List<int> arr1, List<int> arr2) {
  return arr1.where((n) => !arr2.contains(n)).toList();
}

72. 배열에서 가장 많이 등장하는 숫자 구하기

문제: 배열에서 가장 많이 등장한 숫자를 반환하는 함수 작성.

int mostFrequent(List<int> numbers) {
  Map<int, int> frequency = {};
  for (int num in numbers) {
    frequency[num] = (frequency[num] ?? 0) + 1;
  }
  return frequency.entries.reduce((a, b) => a.value > b.value ? a : b).key;
}

73. 배열에서 특정 값 찾기

문제: 배열에서 특정 값이 존재하는지 확인하는 함수 작성.

bool containsElement(List<int> numbers, int value) {
  return numbers.contains(value);
}

74. 배열에서 중복된 숫자 제거

문제: 배열에서 중복된 숫자를 제거하고 남은 배열을 반환하는 함수 작성.

List<int> removeDuplicates(List<int> numbers) {
  return numbers.toSet().toList();
}

75. 배열에서 최대 연속 합 구하기

문제: 배열에서 연속된 숫자들의 최대 합을 구하는 함수 작성.

int maxSubArraySum(List<int> numbers) {
  int maxSum = numbers[0], currentSum = numbers[0];
  for (int i = 1; i < numbers.length; i++) {
    currentSum = max(numbers[i], currentSum + numbers[i]);
    maxSum = max(maxSum, currentSum);
  }
  return maxSum;
}

76. 피보나치 수열 생성

문제: 주어진 길이만큼 피보나치 수열을 생성하는 함수 작성.

List<int> generateFibonacci(int length) {
  List<int> fib = [0, 1];
  for (int i = 2; i < length; i++) {
    fib.add(fib[i - 1] + fib[i - 2]);
  }
  return fib;
}

77. 주어진 두 배열 합치기

문제: 두 배열을 합쳐서 하나의 배열로 반환하는 함수 작성.

List<int> mergeArrays(List<int> arr1, List<int> arr2) {
  return arr1 + arr2;
}

78. 주어진 배열의 홀수와 짝수 개수 세기

문제: 주어진 배열에서 홀수와 짝수의 개수를 세는 함수 작성.

Map<String, int> countOddsAndEvens(List<int> numbers) {
  int odds = numbers.where((n) => n % 2 != 0).length;
  int evens = numbers.where((n) => n % 2 == 0).length;
  return {'odds': odds, 'evens': evens};
}

79. 문자열의 공백 제거하기

문제: 문자열의 앞뒤 공백과 중간의 공백을 모두 제거하는 함수 작성.

String removeWhitespaces(String str) {
  return str.replaceAll(RegExp(r'\s+'), '').trim();
}

80. 배열에서 두 수의 합으로 특정 값 만들기

문제: 배열에서 두 수의 합이 특정 값이 되는 쌍을 찾는 함수 작성.

List<List<int>> findPairsWithSum(List<int> numbers, int target) {
  List<List<int>> pairs = [];
  for (int i = 0; i < numbers.length; i++) {
    for (int j = i + 1; j < numbers.length; j++) {
      if (numbers[i] + numbers[j] == target) {
        pairs.add([numbers[i], numbers[j]]);
      }
    }
  }
  return pairs;
}

81. 배열의 중앙값 구하기

문제: 정렬된 배열의 중앙값을 구하는 함수 작성.

double findMedian(List<int> numbers) {
  numbers.sort();
  int mid = numbers.length ~/ 2;
  return numbers.length % 2 == 0
      ? (numbers[mid - 1] + numbers[mid]) / 2
      : numbers[mid].toDouble();
}

82. 주어진 문자열에서 숫자만 추출하기

문제: 주어진 문자열에서 모든 숫자만 추출하는 함수 작성.

String extractNumbers(String str) {
  return str.replaceAll(RegExp(r'[^0-9]'), '');
}

83. 주어진 배열의 첫 번째와 마지막 요소 교환하기

문제: 배열의 첫 번째와 마지막 요소를 교환하는 함수 작성.

List<int> swapFirstAndLast(List<int> numbers) {
  if (numbers.length < 2) return numbers;
  int temp = numbers[0];
  numbers[0] = numbers[numbers.length - 1];
  numbers[numbers.length - 1] = temp;
  return numbers;
}

84. 특정 문자열로 시작하는지 확인하기

문제: 주어진 문자열이 특정 문자열로 시작하는지 확인하는 함수 작성.

bool startsWith(String str, String prefix) {
  return str.startsWith(prefix);
}

85. 주어진 문자열의 모든 대문자 개수 세기

문제: 주어진 문자열에서 대문자의 개수를 세는 함수 작성.

int countUppercaseLetters(String str) {
  return str.split('').where((char) => char.toUpperCase() == char && char.toLowerCase() != char).length;
}

86. 배열에서 특정 인덱스의 값 변경하기

문제: 배열의 특정 인덱스에 있는 값을 주어진 값으로 변경하는 함수 작성.

List<int> updateValueAtIndex(List<int> numbers, int index, int newValue) {
  if (index >= 0 && index < numbers.length) {
    numbers[index] = newValue;
  }
  return numbers;
}

87. 문자열에서 소문자만 반환하기

문제: 주어진 문자열에서 소문자만 반환하는 함수 작성.

String extractLowercase(String str) {
  return str.replaceAll(RegExp(r'[^a-z]'), '');
}

88. 주어진 숫자의 제곱 구하기

문제: 주어진 숫자의 제곱을 구하는 함수 작성.

int square(int num) {
  return num * num;
}

89. 배열의 요소를 제곱한 새로운 배열 생성하기

문제: 배열의 각 요소를 제곱한 새로운 배열을 반환하는 함수 작성.

List<int> squareElements(List<int> numbers) {
  return numbers.map((n) => n * n).toList();
}

90. 배열의 길이 구하기

문제: 배열의 길이를 반환하는 함수 작성.

int getLength(List<int> numbers) {
  return numbers.length;
}

91. 주어진 문자열을 공백으로 나누기

문제: 문자열을 공백을 기준으로 나누어 배열로 반환하는 함수 작성.

List<String> splitBySpaces(String str) {
  return str.split(' ');
}

92. 두 배열의 합 구하기

문제: 두 배열의 같은 인덱스 요소들을 더하여 새로운 배열을 반환하는 함수 작성.

List<int> sumArrays(List<int> arr1, List<int> arr2) {
  return [
    for (int i = 0; i < arr1.length && i < arr2.length; i++) arr1[i] + arr2[i]
  ];
}

93. 주어진 배열의 요소를 거꾸로 배열하기

문제: 배열의 요소를 거꾸로 배열하여 반환하는 함수 작성.

List<int> reverseArray(List<int> numbers) {
  return numbers.reversed.toList();
}

94. 주어진 숫자 배열의 최대값 구하기

문제: 배열에서 최대값을 찾는 함수 작성.

int findMax(List<int> numbers) {
  return numbers.reduce((a, b) => a > b ? a : b);
}

95. 주어진 숫자 배열의 최소값 구하기

문제: 배열에서 최소값을 찾는 함수 작성.

int findMin(List<int> numbers) {
  return numbers.reduce((a, b) => a < b ? a : b);
}

96. 배열에서 홀수만 반환하기

문제: 주어진 배열에서 홀수만 반환하는 함수 작성.

List<int> getOddNumbers(List<int> numbers) {
  return numbers.where((n) => n % 2 != 0).toList();
}

97. 배열에서 가장 큰 수의 인덱스 구하기

문제: 배열에서 가장 큰 수의 인덱스를 반환하는 함수 작성.

int findIndexOfMax(List<int> numbers) {
  int max = numbers[0];
  int index = 0;
  for (int i = 1; i < numbers.length; i++) {
    if (numbers[i] > max) {
      max = numbers[i];
      index = i;
    }
  }
  return index;
}

98. 모든 숫자를 더한 값 구하기

문제: 배열에 있는 모든 숫자를 더한 값을 구하는 함수 작성.

int sumAll(List<int> numbers) {
  return numbers.reduce((a, b) => a + b);
}

99. 주어진 숫자의 다음 소수 찾기

문제: 주어진 숫자보다 큰 가장 작은 소수를 찾는 함수 작성.

bool isPrime(int num) {
  if (num <= 1) return false;
  for (int i = 2; i * i <= num; i++) {
    if (num % i == 0) return false;
  }
  return true;
}

int nextPrime(int num) {
  int next = num + 1;
  while (!isPrime(next)) {
    next++;
  }
  return next;
}

100. 배열에서 가장 작은 수의 인덱스 구하기

문제: 배열에서 가장 작은 수의 인덱스를 반환하는 함수 작성.

int findIndexOfMin(List<int> numbers) {
  int min = numbers[0];
  int index = 0;
  for (int i = 1; i < numbers.length; i++) {
    if (numbers[i] < min) {
      min = numbers[i];
      index = i;
    }
  }
  return index;
}

 

이로써 총 100개의 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
반응형

'Dart > Algorithms' 카테고리의 다른 글

Dart 알고리즘 100제  (0) 2024.07.21