본문 바로가기
코딩라이브러리/Dart

[Dart] 람다 함수 사용 lambda (with 백준 1181)

by 유니네 라이브러리 2024. 7. 18.

Dart 에서 람다함수는

  • 함수 { } 에서 {} 대신 ⇒ 으로 기호를 변경한 것을 말한다.
  • (매개변수) ⇒ 단 하나의 스테이트먼트.
  • 함수에 전달할 매개변수는 있어도 되고 없어도 된다.

코딩연습

void main() {  
  final numbers = <double>[10,2,5,0.5];

  //람다함수 사용
  final result = numbers.reduce((value,element) => value + element);
  
  //익명함수 사용
  final aResult = numbers.reduce((value, element) {
    return value + element;
  });

  print(result);  //17.5
  print(aResult); //17.5
}

 

☞ 백준 1181 람다함수 연습 문제 풀이

  • 백준 사이트에는 컴파일 언어에 Dart 가 없다.
  • 그래서, 코딩 연습용

중복제거 set(), 정렬 sort(), 비교 compareTo(), 반복문 forEach() 의 Dart 코딩 연습

 

 백준 문제 사이트 : https://www.acmicpc.net/problem/1181

import 'dart:io';
void main() {
  int? N = int.parse(stdin.readLineSync()!);
  var strList = [ for (var i=0; i<N; i++) stdin.readLineSync()! ];
  
  //중복제거 set() 사용 
  List<String> pp = strList.toSet().toList();  
  //길이가 짧은것부터 사전순으로 정렬이 문제이기때문에
  //먼저 사전순으로 정렬
  pp.sort((a, b) => a.compareTo(b));
  //이후 길이가 짧은 것 순으로 정렬
  pp.sort((a, b) => a.length.compareTo(b.length));
  //최종 값 출력
  pp.forEach((a) => print(a));
  /*
  익명함수 {} 로 작성해도 된다.
  pp.forEach((a) {
    print(a);
  });
  */
}
/*
13
but
i
wont
hesitate
no
more
no
more
it
cannot
wait
im
yours
----------
i
im
it
no
but
more
wait
wont
yours
cannot
hesitate
*/

 

☞ 파이썬 람다함수 이전 글은 아래 링크

 

파이썬 람다 함수 lambda (with 백준 1181)

lambda (람다) 표현식 lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다. 제약 문법적

yuneenelife.tistory.com