getMinMaxString 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에는 공백으로 구분된 숫자들이 저장되어 있습니다.
str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 String을 반환하는 메소드를 완성하세요.
예를들어 str이 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

 

 

import java.util.Arrays;

public class GetMinMaxString {
 public String getMinMaxString(String str) {
  
  String[] s;
  s = str.split(" ");
  int[] istr = new int[s.length];
  
  for (int j = 0; j < s.length; j++) {
   istr[j] = Integer.parseInt(s[j]);
  }
  
  Arrays.sort(istr);
  
  int m,n;
  
  m = istr[0];
  n = istr[istr.length-1];
  
  
  return Integer.toString(m) + " " + Integer.toString(n);
 }

 public static void main(String[] args) {
  String str = "-13 -15 19 9";
  GetMinMaxString minMax = new GetMinMaxString();
  // 아래는 테스트로 출력해 보기 위한 코드입니다.
  System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
 }
}

 

 

더 간단한 코딩

 

 

 

public class GetMinMaxString {
    public String getMinMaxString(String str) {
        String[] tmp = str.split(" ");
        int min, max, n;
        min = max = Integer.parseInt(tmp[0]);
        for (int i = 1; i < tmp.length; i++) {
                n = Integer.parseInt(tmp[i]);
            if(min > n) min = n;
            if(max < n) max = n;
        }

        return min + " " + max;

    }

    public static void main(String[] args) {
        String str = "1 2 3 4";
        GetMinMaxString minMax = new GetMinMaxString();
        //아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
    }
}

 

 

--------------------------------------------------------------------

 

처음에 이 문제를 풀때 int 배열을 사용하지 않고 String 배열을 사용해서 풀어보려고 했다.

그러나 Arrays.sort 를 사용해도 정렬하기가 쉽지 않아 결국 int 배열을 사용해서 풀었다.

다음에 방법이 있다면 String 배열을 사용해서 풀어볼것.

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다.

 

 

class JumpCase {
    public int jumpCase(int num) {
      int answer = 0;
  int n1 = 1, n2 = 1;
  for (int i=1; i<num; i++) {
   answer = n1 + n2;
   n1 = n2;
   n2 = answer;
  }
  return answer;
 }

    public static void main(String[] args) {
        JumpCase c = new JumpCase();
        int testCase = 4;
        //아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println(c.jumpCase(testCase));
    }
}

divisible 메소드는 int형 배열 array와 int divisor를 매개변수로 받습니다.
array의 각 element 중 divisor로 나누어 떨어지는 값만 포함하는 새로운 배열을 만들어서 반환하도록 divisible에 코드를 작성해 보세요.

예를들어 array가 {5, 9, 7, 10}이고 divisor가 5이면 {5, 10}을 리턴해야 합니다.

 

 

import java.util.Arrays;

class Divisible {
 public int[] divisible(int[] array, int divisor) {
  //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요.
  int cnt = 0;
  int n = 0;
  for (int i=0; i < array.length; i++) {
   if (array[i] % divisor == 0)
    cnt++;
  }
  
  int[] ret= new int [cnt];
  
  for (int i=0; i < array.length; i++) {
   if (array[i] % divisor == 0) {
    ret[n] = array[i];
    n++;
   }
  }
   //나누어 떨어지는 숫자의 개수가 배열 크기.
  return ret;
 }
 // 아래는 테스트로 출력해 보기 위한 코드입니다.
 public static void main(String[] args) {
  Divisible div = new Divisible();
  int[] array = {5, 9, 7, 10};
  System.out.println( Arrays.toString( div.divisible(array, 5) ));
 }
}

reverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요.
str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
예를들어 str이 "Zbcdefg"면 "gfedcbZ"을 리턴하면 됩니다.

 

 

import java.util.Arrays;
import java.util.Collections;

public class ReverseStr {
 public String reverseStr(String str){
  int strLength = str.length();
  String[] s = new String[strLength];
  char c;
  for (int i=0; i < strLength; i++) {
   s[i] = String.valueOf(str.charAt(i));
  }
  
  Arrays.sort(s, Collections.reverseOrder());
  str = Arrays.toString(s);
  str = str.replace(",", "");
  str = str.replace("[", "");
  str = str.replace("]", "");
  str = str.replace(" ", "");
  
  return str;
 }

 // 아래는 테스트로 출력해 보기 위한 코드입니다.
 public static void main(String[] args) {
  ReverseStr rs = new ReverseStr();
  System.out.println( rs.reverseStr("Zbcdefg") );
 }
}

 

 

 

다른 코드

 

import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){

    char[] chr = str.toCharArray();
        Character [] array = new Character[str.length()];

        for(int i=0;i<array.length;i++){
            array[i] = chr[i];
        }

        Arrays.sort(array);

        for(int i = array.length-1;i>=0;i--){
            chr[array.length-1-i] = array[i];
        }

        String answer = new String(chr,0,chr.length);

        return answer;

    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }


}

 

더 쉬운 코드 - StringBuilder 사용하기.

 

import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
    char[] sol = str.toCharArray();
    Arrays.sort(sol);
    return new StringBuilder(new String(sol)).reverse().toString();
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}

 

문제: def average(list): 함수를 완성해서 매개변수 list의 평균값을 return 하도록 만들기

 

 

 

public class GetMean {
    public int getMean(int[] array) {
         int sum = 0, average = 0;
          for (int i = 0; i < array.length; i++) {
            sum += array[i];

          }
          average = sum/array.length;
          return average;
    }

    public static void main(String[] args) {
        int x[] = {5, 4, 3};
        GetMean getMean = new GetMean();
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println("평균값 : " + getMean.getMean(x));
    }
}

+ Recent posts