Created
August 24, 2021 17:00
-
-
Save doyle-flutter/6f864fcc92507c2d7696be49b84eafb1 to your computer and use it in GitHub Desktop.
책, 그리고 Dart
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| void main() { | |
| // 오늘 4권의 책을 선물 받았다, 나름 정리를 잘하는, | |
| // 깔끔한 사람이므로 도착한 순서대로 서랍에 정리했다. | |
| // [ Book, Book, ... Book] | |
| List<String> books = [ "폴란다스의 개", "해리포터-불의잔", "코난", "해리포터-아즈카반의죄수" ]; | |
| // 🎯 | |
| // 책을 읽던 중 '코난' 가 보고 싶어서 | |
| // 서랍에서 그 중 하나를 찾으려 한다. | |
| String target = "코난"; | |
| // 순서대로 정리했으니 서랍을 열고 첫 번째 책부터 | |
| // 꺼내서 ‘코난’ 인지를 살펴보면 찾을 수 있을 것 같다. | |
| // (1) | |
| for(int i =0; i < books.length; i++){ | |
| if(books[i] == target){ | |
| print(" ' $target ' 이(가) ${i+1} 번째에 있다!"); | |
| break; | |
| } | |
| } | |
| // 서랍에 순서대로 정리했으니 순서대로 하나씩 비교하며 ‘코난’ 책을 찾았다. | |
| // 💪LV_2 | |
| // 올해 1000권 정도가 도착한다고 하는데, | |
| // 중간에 보고 싶은 책이 생겨서 468 번째의 책을 찾으려면 | |
| // 최소 467개의 책을 찾아 봐야한다... | |
| // 갑자기 너무 끔찍해서 라벨링을 하기로 마음먹었다. | |
| // 아직 10개일 때 다시 꺼내어 서랍에 받은 책들의 목록을 적고 | |
| // 순서대로 넣었다. | |
| // (2) | |
| Map<String, int> booksWithLabel = {}; | |
| for(int i = 0; i < books.length; i++){ | |
| booksWithLabel.addAll( { books[i] : i } ); | |
| } | |
| // 이젠 보고 싶은 책이 생겨도 처음 책부터 꺼내어 | |
| // 맞는지 찾아보지 않고 바로 찾을 수 있게 되었다. | |
| print(" ' $target ' 이(가) ${booksWithLabel[target]!+1} 번째에 있다!"); | |
| // 💪LV_3 | |
| // '어떤 책' 이 보고 싶다고도 생각 날 수 있겠지만 | |
| // '몇 번째' 가 보고 싶다고도 할 수 있을 것 같다. | |
| // 그래서 이번엔 라벨링한 것들 중 '몇 번째'에 있는지 찾아볼 것 이다. | |
| // 특별한 방법이라기보다 라벨링 할 때에도 | |
| // 순서대로 서랍장에 담아놨으니 찾기는 쉬울 것이다. | |
| int targetNumber = 2; | |
| print(" ' ${targetNumber+1} ' 번째에는 ' ${booksWithLabel.keys.toList()[targetNumber]} ' 이(가) 있다!"); | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment