๐Ÿ”ถ [์˜ค๋ฆ„์บ ํ”„_4์ผ์ฐจ] Dart ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์ˆœํ•œ๋ง›!

์†์„ธ์€ยท2023๋…„ 11์›” 30์ผ

์Šต๋“ํ•œ ์ง€์‹!

.contains :

.split :

.every :

M1. ๋” ํฐ ์ˆ˜ ํŒ๋ณ„ํ•˜๊ธฐ

๊ธฐ๋Šฅ:

A, B ๋‘ ์ •์ˆ˜ ์ค‘ ๋” ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅ
A, B๊ฐ€ ๊ฐ™๋‹ค๋ฉด โ€˜eqโ€™๋ฅผ ์ถœ๋ ฅ

๋ฏธ์…˜:

  1. 10, 20 ์ค‘ ๋” ํฐ์ˆ˜๋ฅผ ์ถœ๋ ฅ
  2. 10,10์€ โ€˜eqโ€™ ์ถœ๋ ฅ

์ถœ๋ ฅ์˜ˆ์‹œ:

20
eq

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  printInt(10, 20);  //์ธ์ˆ˜ ์ „๋‹ฌ
  printInt(10, 10);
}

void printInt(int a, int b) {
  if (a > b || a < b) {
    //์ž…๋ ฅ ๋ฐ›์€ ์ˆซ์ž ๋‘˜ ์ค‘ ์–ด๋А ๊ฒƒ์ด ๋” ํด์ง€ ๋ชจ๋ฅด๋‹ˆ, or ์—ฐ์‚ฐ์ž๋กœ 2๊ฐ€์ง€์˜ ์กฐ๊ฑด์„ ๋„ฃ์–ด์ค€๋‹ค. 
    print(a > b ? a.toString() : b.toString());
    //a๊ฐ€ b๋ณด๋‹ค ํฌ๋ฉด? print(a), a๊ฐ€ b๋ณด๋‹ค ์ž‘์œผ๋ฉด? print(b);
  } else if (a == b) {
    print('eq');
   // a ์™€ b์˜ ์ˆซ์ž๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” print('eq')
  }
}

//flutter: 20
//flutter: eq

M2. ์ง์ˆ˜์™€ ํ™€์ˆ˜

๋‹น์‹ ์€ ํšŒ์‚ฌ๋ฅผ ๋Œ€ํ‘œํ•˜์—ฌ 2๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๊ณจ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ์ง์ˆ˜์ด๋ฉด
ํ™€์ˆ˜ํŒŒ(ํ™€์ˆ˜๋ฅผ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ชจ์ž„)๊ฐ€ ์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ํ™€์ˆ˜์ด๋ฉด ์ง์ˆ˜ํŒŒ๊ฐ€
์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ง์ˆ˜ ํ•˜๋‚˜ ํ™€์ˆ˜ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ์„œ ๋ชจ๋‘๋ฅผ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…:

N, M ๋‘ ์ •์ˆ˜๊ฐ€ ์ง์ˆ˜์™€ ํ™€์ˆ˜์˜ ์Œ์ด๋ฉด โ€œYESโ€, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด โ€œNOโ€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ์…˜:

  1. 30, 15 ์ผ ๋•Œ
  2. 12, 40 ์ผ ๋•Œ

์ถœ๋ ฅ์˜ˆ์‹œ:

YES
NO

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  printInt(30, 15);
  printInt(12, 40);
}

void printInt(int a, int b) {

  int c = a + b;
  // ํ™€ + ํ™€ , ์ง + ์ง = ์ง
  // ํ™€ + ์ง = ํ™€
  
  if (c % 2 ==  1) {
  // c์˜ ์กฐ๊ฑด, /2์˜ ๋‚˜๋จธ์ง€๊ฐ€ 1์ผ ๊ฒฝ์šฐ, ํ™€์ˆ˜
  // == ํ™€, ์ง์ด๋ผ๋Š” ๋œป
    print('YES');
  } else if (c % 2 ==  0){
  // c์˜ ์กฐ๊ฑด, /2์˜ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ, ์ง์ˆ˜
  // == ํ™€+ํ™€, ๋˜๋Š” ์ง+์ง์ด๋ผ๋Š” ๋œป
    print('No');
  }
}


//flutter: YES
//flutter: NO

M3. ์—ฐ๋ฝ์ฒ˜ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ

๋‹น์‹ ์€ ์ด๋ฆ„๊ณผ ์—ฐ๋ฝ์ฒ˜๋ฅผ ํ•œ์ค„๋กœ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ทธ ์–‘์ด 1์–ต๊ฐœ๋ผ๋ฉด? ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

๋ฏธ์…˜:

  • โ€˜๋ชจ๋‘์—ฐโ€™ , โ€˜010โ€™, โ€˜1234โ€™, โ€˜5678โ€™ ์„ ํ•œ์ค„๋กœ ๋งŒ๋“ค์–ด ๋ณด์‹œ์š”

์ถœ๋ ฅ์˜ˆ์‹œ:

๋ชจ๋‘์—ฐ 010-1234-5678

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  printContact('๋ชจ๋‘์—ฐ', '010', '1234', '5678');
  printContact('์†์„ธ์€', '010', '6428', '0139');
}

void printContact(String name, String prefix, String middle, String last) {
  print('$name: $prefix-$middle-$last');
}

//๋ชจ๋‘์—ฐ: 10-1234-5678
//์„ ํ–‰ํ•˜๋Š” 0์ด ์žˆ๋Š” ์ˆซ์ž๋ฅผ ์ •์ˆ˜๋กœ ์„ ์–ธํ•˜๋ฉด(์˜ˆ: 010)
//ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ทธ๊ฒƒ์„ 8์ง„์ˆ˜(8์ง„๋ฒ• ์ˆซ์ž)๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.


//flutter: ๋ชจ๋‘์—ฐ: 010-1234-5678
//flutter: ์†์„ธ์€: 010-6428-0139

M4. ๋“ฑ์ฐจ์ˆ˜์—ด ์˜ˆ์ œ ์ƒ์„ฑ๊ธฐ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ

๋‹น์‹ ์€ ์ดˆ๋“ฑํ•™๊ต ์ˆ˜ํ•™์„ ์ƒ๋‹˜์ž…๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์—๊ฒŒ ๋“ฑ์ฐจ์ˆ˜์—ด์— ๋Œ€ํ•œ ์„ค๋ช…์ž๋ฃŒ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด
์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์›Œ ๋“ฑ์ฐจ์ˆ˜์—ด ์˜ˆ์ œ ์ƒ์„ฑ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

์„ค๋ช…:

  • ๋“ฑ์ฐจ์ˆ˜์—ด์ด๋ž€?
    5 8 11 14 17 20 23 26 29 32
    ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ 5์—์„œ 3 ์”ฉ ์ฆ๊ฐ€ ํ•ด๊ฐ€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์„ ์ฒซํ•ญ์ด 5, ๊ณต์ฐจ๊ฐ€ 3์ธ ๋“ฑ์ฐจ์ˆ˜์—ด์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    ์ด๋Ÿฐ ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด์ž.

๋ฏธ์…˜:

  • ์ฒซ ํ•ญ 5, ๊ณต์ฐจ 10์ธ ๋“ฑ์ฐจ์ˆ˜์—ด์„ 10๋ฒˆ์งธ๊นŒ์ง€ ์ถœ๋ ฅ ํ•ด ๋ณด์„ธ์š”

์ถœ๋ ฅ์˜ˆ์‹œ:

5 15 25 35 45 55 65 75 85 95

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  int firstTerm = 5; // ์ฒซ ํ•ญ: ๋“ฑ์ฐจ์ˆ˜์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž
  int commonDifference = 10;  // ๊ณต์ฐจ: ์—ฐ์†๋˜๋Š” ํ•ญ๋“ค ์‚ฌ์ด์˜ ์ผ์ •ํ•œ ์ฐจ์ด
  int numberOfTerms = 10;  // ํ•ญ์˜ ์ˆ˜: ์ƒ์„ฑํ•  ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ํ•ญ ๊ฐœ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  // for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ๊ฐ ํ•ญ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  for (int i = 0; i < numberOfTerms; i++) {
    int count = i * commonDifference;
    // ํ•ญ์˜ ์ˆ˜ * ๊ณต์ฐจ
    // ex) 1 * 10,, 2 * 10 ,, 3 * 10 ,,
    int term = firstTerm + count; // ์ฒซ ํ•ญ์— ๊ณต์ฐจ์˜ ์ดํ•ฉ์„ ๋”ํ•˜์—ฌ i๋ฒˆ์งธ ํ•ญ์„ ๊ณ„์‚ฐ
    // 5 + 10 ,, 5 + 20 ,, 5 + 30 ,,
    print(term); // ๊ณ„์‚ฐ๋œ i๋ฒˆ์งธ ํ•ญ์„ ์ถœ๋ ฅ
  }
}

M5. ๋ถ€์กฑํ•œ ์นด๋“œ ์ฐพ๊ธฐ

๋‹น์‹ ์€ 1, 2, 3, 4, 5์˜ ์ˆซ์ž๊ฐ€ ์ ํžŒ 5 ์ข…๋ฅ˜์˜ ์นด๋“œ๋ฅผ ๋ชจ์œผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
4๋ฒˆ์งธ๊นŒ์ง€ ๋ชจ์—ฌ์„œ 1์žฅ๋งŒ ๋” ๋ชจ์œผ๋ฉด ๋˜๋Š” ์ƒํ™ฉ์— ์นด๋“œ๊ฐ€ ์„ž์—ฌ ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.
4์žฅ์˜ ์นด๋“œ ์ •๋ณด๋Š” ์ค„ ๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ๋˜๋ฏ€๋กœ 1~5์˜ ์นด๋“œ ์ค‘ ๋ถ€์กฑํ•œ ์นด๋“œ์˜ ์ˆซ์ž๋ฅผ
์ถœ๋ ฅ ํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ์…˜:

  • ๋ฆฌ์ŠคํŠธ [1,3,2,5] ์ค‘ ๋น ์ง„ ์ˆ˜๋ฅผ ์ถœ๋ ฅ ํ•˜์‹œ์˜ค

์ถœ๋ ฅ์˜ˆ์‹œ:

4

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  // ์›๋ž˜์˜ ์นด๋“œ ๋ฆฌ์ŠคํŠธ์™€, ์„ž์ธ ์นด๋“œ ๋ฆฌ์ŠคํŠธ 2๊ฐ€์ง€ ๋น„๊ต
  
  List<int> numberCards = [1, 2, 3, 4, 5];
  // ์›๋ž˜์˜ ์นด๋“œ๋ฆฌ์ŠคํŠธ
  List<int> haveNumberCards = [1, 3, 2, 5];
  // ์„ž์ธ ์นด๋“œ ๋ฆฌ์ŠคํŠธ


  for (int number in numberCards) {
  //์›๋ž˜์˜ ์นด๋“œ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ, int number์— ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ€์ž…
    if (!haveNumberCards.contains(number))
  // haveNumberCards์— number๊ฐ€ ํฌํ•จ์ด ๋˜์–ด ์žˆ์œผ๋ฉด,
  // !haveNumberCards์— number๊ฐ€ ํฌํ•จ์ด ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด,
    print(number);
    // number๋ฅผ print ํ•ด๋ผ!
  }

M6. ์—ฐ์†๋œ ๊ฐ™์€ ์ˆ˜ ํŒ๋ณ„

๋‹น์‹ ์€ ์ž…๋ ฅ๋œ ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ž…๋ ฅ๋œ ์ˆซ์ž์˜ ๊ฐ
์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋ผ๋ฉด ๊ทธ ์ˆซ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด "No"๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ์…˜:

  • 777 ์ผ๋•Œ
  • 725 ์ผ๋•Œ

์ถœ๋ ฅ์˜ˆ์‹œ:

777
No

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  printResult(777); // ๋ชจ๋“  ์ž๋ฆฌ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ
  printResult(123); // ๋ชจ๋“  ์ž๋ฆฌ์ˆ˜๊ฐ€ ๊ฐ™์ง€ ์•Š์€ ๊ฒฝ์šฐ
}

void printResult(int number) {
  String numberStr = number.toString();
  bool allDigitsSame =
      numberStr.split('').every((digit) => digit == numberStr[0]);
      //split('') ๋ฉ”์„œ๋“œ๋Š” ์ด ๋ฌธ์ž์—ด์„ ๊ฐ๊ฐ์˜ ๋ฌธ์ž๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
      //์˜ˆ๋ฅผ ๋“ค์–ด, '777'์€ ['7', '7', '7']๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
      //every ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      //์—ฌ๊ธฐ์„œ digit๋Š” split์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ (์ฆ‰, ๊ฐ ์ž๋ฆฟ์ˆ˜)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
     //digit == numberStr[0]๋Š” ํ˜„์žฌ ์ž๋ฆฟ์ˆ˜(digit)๊ฐ€ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž(numberStr[0])์™€ ๊ฐ™์€์ง€๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

  if (allDigitsSame) {
    print('$number');
    //allDigitsSame์ด true ๋ฉด ์ˆซ์ž ๋ฐ˜ํ™˜
  } else {
    print('No');
    //allDigitsSame์ด false ๋ฉด No ๋ฐ˜ํ™˜

  }
}

M7. ํƒœํ’์˜ ๊ฐ„๊ฒฉ

๋‹น์‹ ์€ ๊ธฐ์ƒ์ฒญ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๋กœ์จ ํƒœํ’ ์ƒ๋ฅ™ ๊ฐ„๊ฒฉ์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
์ƒ˜ํ”Œ๋กœ 5๊ฐœ์˜ ํƒœํ’ ์ƒ๋ฅ™์ผ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ๋‹ค์Œ ํƒœํ’์ด ๋ช‡ ์ผ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์ผ์ˆ˜๋ฅผ
๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ฏธ์…˜:

  • ํƒœํ’ ์ƒ๋ฅ™์ผ [5,8,19,25,31]

์ถœ๋ ฅ์˜ˆ์‹œ:

3
11
6
6

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  List<int> currentHurricane = [5, 8, 19, 25,31];

  for(int i = 0; i < currentHurricane.length - 1; i++) {
    int index = currentHurricane[i + 1] - currentHurricane[i];
    print(index);
  }
}

M8. ๋นผ๋นผ๋กœ ํŒŒํ‹ฐ

์˜ค๋Š˜์€ ๋นผ๋นผ๋กœ ๋ฐ์ด ํŒŒํ‹ฐ๋ฅผ ํ•˜๋Š” ๋‚ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋นผ๋นผ๋กœ๊ฐ€ 11๊ฐœ ์ด์ƒ ์žˆ์–ด์•ผ ํŒŒํ‹ฐ๋ฅผ ์—ด ์ˆ˜
์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ:

๋นผ๋นผ๋กœ 1๊ฐœ๋Š” "1"๋กœ ํ‘œ์‹œํ•˜๋ฉฐ 1๋กœ ์—ฐ์†๋˜๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
ํŒŒํ‹ฐ๋ฅผ ์—ด ์ˆ˜ ์žˆ์œผ๋ฉด "OK", ํŒŒํ‹ฐ๋ฅผ ์—ด ์ˆ˜ ์—†๋‹ค๋ฉด ์•ž์œผ๋กœ ์ตœ์†Œํ•œ์˜ ๋” ํ•„์š”ํ•œ ๋นผ๋นผ๋กœ์˜ ์ˆ˜๋ฅผ
์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ์…˜:

  • 11111111111 ์ผ๋•Œ
  • 11111 ์ผ๋•Œ

์ถœ๋ ฅ์˜ˆ์‹œ:

OK
6

์ œ์ถœ ์ฝ”๋“œ ๋ฐ ํ’€์ด

void main() {
  throwParty(11111111111);
  throwParty(11111);
}

void throwParty(int a) {
  String strNumber = a.toString();

  if (strNumber.length >= 11) {
    print('OK');
  } else {
    int b = 11 - strNumber.length;
    print(b);
  }
}
profile
ํž™์Šคํ„ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ ๋ž˜์š”

0๊ฐœ์˜ ๋Œ“๊ธ€