상세 컨텐츠

본문 제목

[Java] [알고리즘] 문제풀이 , 연습문제 풀이

1 a n G u a g e /JAVA

by 동혼 2019. 7. 10. 21:27

본문

ㄹ 자 형태로 n*n 을 출력하라

tip . 1줄 ,3 줄, 5줄 등 홀수 줄은 왼> 오로 숫자가 증가하고

2줄, 4줄 등 짝수 줄은 왼>오 로 숫자가 감소한다 ( == 오> 왼 으로 숫자가 증가한다 )

 

 

 

원하는 몸무게와 현재몸무게를 입력받고

주체별감량 몸무게를 입력받아

목표달성시 축하메세지를 띄워라 

 

 

import java.util.Scanner;

 

public class f01 {

    public static void main(String[] args) {

 

        Scanner sc = new Scanner(System.in);

        

        System.out.print("현재 몸무게 > ");

        int w = sc.nextInt();

        System.out.print("목표 몸무게 > ");

        int g = sc.nextInt();

        

        int cnt =1;

        int mi =0;

        while (true)

        {

            if (w >g) {

                System.out.print(cnt + "주차 감량 몸무게 : " );

                mi = sc.nextInt();

                ++cnt;

                w-=mi;

            }

            else if (w<=g) {

                System.out.println(w + " kg 달성 ! 축하합니다 ! " );

                break ;

            }

            

        }

    }

}

 

 

Colored by Color Scripter

 

 

 

 

 

 

 

곱하는 총합을 구하라 

public class f06 {

 

    public static void main(String[] args) {

        

        int i;

        int sum=0 ;

        

        for (i=1 ; i< 78 ; i++) {

            

            sum += i*(78-i);

        }

        

        System.out.println(sum);

 

    }

 

}

 

Colored by Color Scripter

 

 

 

 

 

 

 

 

피보나치 수열은

재귀함수를 사용하여야한다

 

 

import java.util.Scanner;

 

public class f13 {

    public static void main(String[] args) {        

        Scanner sc = new Scanner(System.in);

        System.out.println("입력 > ");

        int num1 = sc.nextInt();

 

        int i ;

        

        for ( i =1 ; i<= num1 ; i ++

        {

            System.out.print( fibo(i) + "  ");

        }

        // 1 1 2 3 4 8 13 21

    }

    private static int fibo(int i) {

 

        if (i==1return 1;

        if (i==2return 1;

        return fibo(i-2+ fibo(i-1);

    }

 

}

 

Colored by Color Scripter

 

 

 

 

 

ㄹ 자 형태로 n*n 을 출력하라

tip . 1줄 ,3 줄, 5줄 등 홀수 줄은 왼> 오로 숫자가 증가하고

2줄, 4줄 등 짝수 줄은 왼>오 로 숫자가 감소한다 ( == 오> 왼 으로 숫자가 증가한다 )

 

import java.util.Scanner;

 

public class f18 {

    public static void main(String[] args) {

 

        Scanner sc = new Scanner(System.in);

        System.out.print(" 숫자 입력 > ");

        int n = sc.nextInt();

        int cnt=1;

        int[][] arr = new int[n][n];

    

        for (int i=1 ; i<= n ; i++) {        //넣기

            if (i%2==0) {

                for (int j=n-1 ; j>= 0 ; j--) {

                    arr[i-1][j]=cnt;

                    cnt++;

                }

            }

            else if (i%2==1) {

                for (int j=0 ; j< n ; j++) {

                    arr[i-1][j]=cnt;

                    cnt++;

                }

            }

        }

        for (int i=0 ; i< n ; i++) {        //출력

            for (int j=0 ; j< n ; j++

                System.out.printf("%3d" ,arr[i][j] ); 

            

            System.out.println( );

        }

    }

    

}

 

Colored by Color Scripter

 

 

 

 

 

 

 

 

 

 

 

 

배열 중 최대값을 가진 숫자의 행 ,열을 출력하라 

 

 

import java.util.Random;

 

public class f29 {

 

    public static void main(String[] args) {

        

        Random r= new Random();

        int[][] arr= new int[8][8];

        int i, j ;

        

        for (i=0 ; i<8 ; i++) {            //랜덤 배치

            for ( j=0 ; j<8 ; j++) {

                arr[i][j] =r.nextInt(99)+1;

            }

        }

        int col=0 , row=0 ;

        int max = arr[0][0];

        

        System.out.println("배열 안의 값  > ");        //출력 

        for (i=0 ; i<8 ; i++) {

            for ( j=0 ; j<8 ; j++) {                

                if (arr[i][j] > max ) {

                    max =arr[i]  [j];                                                                                             

                    col =j ;

                    row =i ;    

                }

                System.out.print(arr[i][j]+ "  ");    

 

            }System.out.println();

        }

        

        System.out.println("\n\n최댓값 > " + max);

        System.out.println("행 >  " + row + "   열" + col );

        

    }

 

}

 

 

 

Colored by Color Scripter

 

 

 

 

 

 

 

 

 

 

두 배열을 합한 배열1을 구하고

배열1을 정렬한뒤 리턴 받아 출력하라

 

 

 

import java.util.Arrays;

 

public class fb5 {

 

    public static void main(String[] args) {

    

        int a[] = {13579111315 ,1719};        

        int b[] = {2468101214161820};

        

        int Merge[] = new int [a.length + b.length];        

        

        Merge= mergeArray(a, b);

        System.out.print( Arrays.toString( Merge )  );

        

    }

    private static int[] mergeArray(int[] a, int[] b) {

 

        int[] arr= new int[(a.length + b.length)];

        int cnt=1;

        int tmp=0;

        for (int i=0 ; i<arr.length ; i++) {

            arr[i]=cnt++;

        }

        

        for (int i=0 ; i<a.length ; i++) {

            for (int j=0 ; j<b.length ; j++) {

                

                if (arr[j] < arr[j+1]) {

                    tmp= arr[i];

                    arr[i] = arr[i+1];

                    arr[i+1]= tmp;

                }

            }

        }

        

        

        return arr;

        

    }

}

 

 

 

Colored by Color Scripter

 

원래는 두 배열을 합해야하는데 시간상 문제를 푸려고 배열1에 +1 하면서 for문을 돌렸다.

정답은 맞았지만 소스자체는 틀린셈이니 그점은 주의 하길 바란다 

 

 

 

 

 

 

 

 

 

 

관련글 더보기

댓글 영역