목록전체 글보기 (15)
devGYU World
솔리디티를 통해 간단한 예제를 작성하고자 한다. 자판기 시스템을 구현할 것이며 코드는 아래의 조건을 충족해야 한다. 1. 음료수의 초기 수량은 10개이다. 2. 음료수의 가격은 1 eth 로 고정한다. 3. 음료수가 모두 매진되면 "Sold out" 이벤트가 발생한다. 4. 처음 컨트랙트를 배포한 관리자 주소만 음료수 재고를 조정 가능하다. 5. 관리자 주소만 현재 음료수의 재고를 확인할 수 있다. 6. 관리자 주소만 현재 자판기에 입금된 잔액(balance)를 확인하고 인출할 수 있다. 상기의 조건을 만족하는 전체 코드는 아래와 같다. // SPDX-License-Identifier: MIT License pragma solidity >=0.7.0 uint8) itemStock; event Someon..

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에 누적하여 ..