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.
'Dart > Algorithms' 카테고리의 다른 글
Dart 알고리즘 100제 (0) | 2024.07.21 |
---|