목록exercism (7)
devGYU World

Dart 언어를 공부하는 중인데 따로 연습 예제를 풀어볼만한 마땅한 사이트가 없어 찾고 있던 와중에 Exercism을 발견했다. 국내의 백준과 같이 다양한 언어들로 예제들을 풀어볼 수 있는 사이트인 것 같은데, 필자가 공부하고자 하는 Dart 언어는 Online editor가 아닌 사용자 호스트 머신에서 직접 제출해야 한다고 한다. 백준의 경우에도 Dart는 채점이 되지 않는 이유로 미지원이라고 한 것 같은데... 그나마 여기는 되기라도 하니 다행일까. 일단 이렇게라도 공부하기 위해 이번에는 사용자가 자신의 머신에 Exercism을 설치하는 방법을 알아보고자 한다. 우선 Exercism을 사이트에 접속하여 가입한다. Exercism Learn, practice and get world-class ment..

본 예제는 입력받은 수가 암스트롱 수인가 여부를 판별한다. 암스트롱 수란 기재된 것과 같이 각 자릿수 값의 자릿수 개수만큼의 거듭제곱들의 합이 원래 수와 같은지 말이다. 따라서 입력받은 수의 자릿수와 갯수를 구해서 각 값들의 합이 원래 수와 같은지를 판별해야 한다. import 'dart:math'; class ArmstrongNumbers { bool isArmstrongNumber(int? number) { int armNum = 0; //입력받은 수를 String으로 변환하여 Length를 구하면 자릿수를 알 수 있다. //String으로 변환된 수를 split한 뒤 다시 int 타입으로 변환하여 제곱값을 구한다. //모든 과정을 fold() 함수를 통해 누적 값을 구한다. number.toStri..

본 예제는 입력된 문자열을 분석하여 문자열에 포함된 각 알파벳의 개수만큼 지정된 포인트의 합을 반환한다. 예제를 풀기 위해 같은 포인트 값을 가진 알파벳의 리스트를 생성하였고, 입력된 문자열이 리스트의 알파벳에 포함될 때마다 0부터 시작된 합을 누적하여 반환한다. int score(String? str) { int point = 0; List value1 = ["A", "E", "I", "O", "U", "L", "N", "R", "S", "T"]; List value2 = ["D", "G"]; List value3 = ["B", "C", "M", "P"]; List value4 = ["F", "H", "V", "W", "Y"]; List value5 = ["K"]; List value8 = ["J", ..

본 예제는 리스트의 합의 제곱(square of the sum)과 리스트의 제곱의 합(sum of the square)을 구하고 두 합의 차이를 구하는 예제이다. 리스트를 생성하는 함수를 설정 한 뒤 합의 제곱과 제곱의 합을 구하는 함수에서 각각 리스트를 호출하고 조건에 맞춰 pow() 함수를 활용해 제곱의 합을 수행하는 함수를 작성하였고 아래의 결과와 같다. import 'dart:math'; class DifferenceOfSquares { // 리스트를 생성하는 함수 List makeSquare(int number) { List square = []; for (int i = 1; i null) initialValue를 설정하면 화살표 함수 뒤의 연산을 수행한 뒤 previousValue에 누적하여 ..

본 예제는 윤년의 여부를 bool 타입으로 반환하면 되는 예제이다. 모든 윤년은 기재된 조건과 같이 4년마다 돌아오며, 100년마다 나눠지는 형태는 아니지만 400년 마다 나눠져야 한다. 해당 조건들을 반영한 코드는 아래와 같다. class Leap { bool leapYear(int year) { if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) return true; else return false; } } 참고 Leap in Dart on Exercism Can you solve Leap in Dart? Improve your Dart skills with support from our world-class team of mentors. exe..