Dart 문제 함수 Max, Min

SeonHo·2024년 8월 31일

Dart

목록 보기
8/13
post-thumbnail

오랫만에 글쓰는거 같네요.
2박 3일 동원 훈련 받으러 가서
아무것도 못했습니다. ㅡㅡ
심지어 전역이 1월 11일이여서
내년에도 한번 더 가야 해요 ...

각설하고

위에 이미지 처럼 사용자가 수를 입력하고
큰 수와 작은수로 나오는게 문제 였습니다.

메인 함수

void main() {
  stdout.write('숫자 , 구분 입력:');
  String input = stdin.readLineSync()!;
  maxMin(input);
}

큰값 작은값 찾는 함수

숫자로 나누기 위해서 split() 으로 , 나눴으며
split() 을 쓰면 List로 타입으로 지정해야 하는게
익숙해졌습니다.

왜 List 타입으로 지정해야지? 아직 안찾아봤지만
제 생각에는 분리된 값들이 따로따로 있으니
하나의 String 타입에 있을 수 없어서 List로 담는게 아닌가?
벨로그 쓰고 나서 찾아봐야겠네요.

maxMin(mMinput) {
  List<String> mMsplit = mMinput.split(',');

반복 하면서 순서대로 int 타입으로 intSp에 값을 추가하고

  List<int> intSp = [];

  for (int i = 0; i < mMsplit.length; i++) {
    intSp.add(int.parse(mMsplit[i]));
  }

큰 값과 작은 값 구하는 방법
순서대로 intSp에 숫자들을 반복해서 큰 수, 작은 수를 구하는
코드를 작성했습니다.

  int maxNum = intSp[0];
  int minNum = intSp[0];

  for (int i = 1; i < intSp.length; i++) {
    if (intSp[i] > maxNum) {
      maxNum = intSp[i];
    }
    if (intSp[i] < minNum) {
      minNum = intSp[i];
    }
  }
  print('가장 큰값: $maxNum, 가장 작은 값: $minNum');
}

최종코드는 이렇게 되지만

import 'dart:io';

void main() {
  stdout.write('숫자 , 구분 입력:');
  String input = stdin.readLineSync()!;
  maxMin(input);
}

maxMin(mMinput) {
  List<int> intSp = [];
  List<String> mMSplit = mMinput.split(',');

  for (int i = 0; i < mMSplit.length; i++) {
    intSp.add(int.parse(mMSplit[i]));
  }
  int maxNum = intSp[0];
  int minNum = intSp[0];

  for (int i = 1; i < intSp.length; i++) {
    if (intSp[i] > maxNum) {
      maxNum = intSp[i];
    }
    if (intSp[i] < minNum) {
      minNum = intSp[i];
    }
  }
  print('가장 큰값: $maxNum, 가장 작은 값: $minNum');
}

for (int i = 0; i < mMSplit.length; i++)
for (int i = 1; i < intSp.length; i++)

두 코드가 비슷한거 같은데? 좀 더 간결하게 만들 순 없을까?
생각 했지만 아직은 힘들거 같습니다.

맨 처음에는 코드를 숫자로 변경하자 해서 작성했지만

List mMSplit = mMinput.split(',');
-> List intSp = int.parse(mMinput.split(','));

-> A value of type 'int' can't be assigned to a variable of type 'List'
'int' 타입의 값은 'List' 타입의 변수에 할당할 수 없습니다.

그러면 ... toList()를 쓰면?

List intSp = int.parse(mMinput.split(',')).toList();

The method 'toList' isn't defined for the type 'int'.
-> 'int' 유형에 대해 'toList' 메서드가 정의되지 않았습니다.

이 부분을 해결 못해서 List<int> 로 만들어서 문제를 풀었었네요.

더 간결한 코드는 있겠지만 아직은 힘들거 같습니다.

공부할게 많고 갈 길이 멀다.
하지만 화이팅!

profile
목표를 달성하자!

0개의 댓글