테디준·2022년 9월 22일
0

당신은 입력된 수를 판별하는 프로그램을 만들고 있습니다. 프로그램은 입력된 숫자의 각 자리수가 모두 같은 숫자라면 그 숫자를 그대로 출력하고, 아니라면 "No"를 출력합니다.
판정 숫자 n은 모든 자리수의 숫자가 같은 경우 판정 숫자 n을 그대로 출력하고,
그렇지 않으면 "No"라고 출력합니다.

입력

4444
3335

출력

4444
No

풀이방법 1

String solution(String n) {
  return n.split('').toSet().length == 1 ? n : 'No';
}

풀이해설

set이 중복된 부분을 제거하는 함수이므로 그걸 사용해 중복을 다 제거할 경우 다 똑같은 숫자의 경우 1개만 남는 사실을 활용한다.

풀이방법 2

String solution(String n) {
  String result = '';
  for(int i = 0; i < n.length; i++) {
    if(n.split('')[i] == n[0]) {
      result = n;
    }
    else {
       result = 'No';
    }
  }
  return result;
}

풀이해설

split으로 String을 하나씩 분리한 뒤 각각을 비교하여 다 같으면 원래의 숫자를 반환하고, 아니면 No를 반환하게 For문을 사용한다. dart의 경우 String이 n[0,1,2]같이 떼낼 수 있다.

0개의 댓글