다섯째 개발일지

in #kr7 years ago (edited)

안녕하세요 #a991102 입니다.
오늘은 다섯째 개발인지인데요 오늘은 양이 짧습니다. 이해부탁드리겠습니다.

첫번재로는 배열 앞6자리 바꾸기입니다.

package 삼월십오일;

public class ArrayEx8 {
public static void main(String args[]) {

    // 45 개의 정수값을 저장하기우한 배열 생성
        int[] ball = new int [45];
        
        //배열의 각 요소에 1~45 값을 저장한다 .
        for(int i = 0; i< ball.length; i++) {
                ball[i] = i+1;
        }
        int temp = 0; //두 값을 바꾸는데 사용할 임시변슈
        int j = 0; // 임의의 값을 얻어서 저장할 변수
        
        // 배열의  i 번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
        //0번재부터 5번째 요소까지 모두 6개만 바꾼다.
        for(int i=0; i< 6; i++){
            j = (int)(Math.random() * 45); //0부터 44범위의 정수를 얻는다
            temp  = ball[i];
            ball[i] = ball[j];
            ball[j] = temp;
            
        }
        //배열 ball 의 앞에서 부터 6개의 요소를 출력한다.
        for(int i = 0; i <6; i++){
                System.out.printf("ball[]%d=%d%n", i, ball[i]) ;
        }
        
}

}
두번째는 최대값 , 최소값 구하는 것 입니다.
package 삼월십오일;

public class ArrayEx6 {
public static void main(String args[]) {
int []score = {79,88,91,33,100,55,95};

        int max = score[0];
        int min = score[0];
        
        for(int i = 1; i < score.length; i++){
                if(score[i] > max){
                        max= score[i];
                }else if (score[i] < min ){
                        min  = score[i];
                }
        }
        System.out.println("최소값 : " + min);
        System.out.println("최대값 : " + max);
}

}

Sort:  

와우!! 힘내세요!!

감사합니다^^

  1. 로또 숫자를 구하는 것인것 같은데, 매우 쉬운 방법이 있습니다.
    더욱이 이 알고리즘은 랜덤값에 따라서 앞 6자리가 바뀌지 않을 가능성이 있습니다.
  2. 이 알고리즘은 O(N) 인데, 소팅하면 최대,최소값을 한번에 찾을 수 있고,
    그다음최대값 등을 쉽게 찾을 수 있습니다.
    소팅은 은 NlogN 시간에 처리할 수 있으므로 문제에 따라서는 더 좋은 솔루션이 될 수 있습니다.

신경써서 읽어주셔서 감사합니다 ! 생각해보니까 로또 숫자구하는 것은 취약점을 보안해야할거같네요.
앞으로도 좋은말씀부탁드립니다. ! 감사합니다 :)

코드를 올릴 때는 아래 내용을 참고하세요.
https://steemit.com/kr-dev/@kdj/2mgzti