CodingTest/programmers-basic

구구단

chandlerxx 2023. 10. 23. 16:32

뭐든 만들어보면서 직접 느끼고

관련지식들을 쌓아나가는 방법이 좋다고 생각합니다.

 

 

1.  기본 출력


  • main 메써드와 System.out

 

*void : return되는 타입 없음. return이 불필요하다는 뜻.

*main : JVM이 자바 프로그램을 실행시킬 때 최초로 실행시키는 메소드이며, main없이 코드를 실행시킬 수 없음.

package gugudan;

public class Ex1 {

    public static void main(String[] args) {
        /*2단*/
        System.out.println(2 * 1);
        System.out.println(2 * 2);
        System.out.println(2 * 3);
        System.out.println(2 * 4);
        System.out.println(2 * 5);
        System.out.println("2 * 6 = " + 2 * 6);
    }
}

출력

 

 

2. 사용자 입력 변수를 받아 구구단 출력하기


  • Scanner 클래스 + for문

*new연산자 : instance를 생성해주는 역할 (메모리에 데이터 할당하고 객체에게 반환)

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html

 this code allows a user to read a number from System.in:
     Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();

package gugudan;

import java.util.Scanner;

public class Ex2 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int result = scanner.nextInt();

        for (int i = 1; i < 10; i++) {
            System.out.println(result * i);
        }
    }
}

출력

 

 

3. 조건을 적용한 구구단


  • 문제 : 2 이상 9 이하의 구구단만 출력하는 프로그램을 만드시오.
package gugudan;

import java.util.Scanner;

public class Ex3_sol {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    int result = scanner.nextInt();

    if ( result < 2 ) {
        System.out.println("2 이상인 숫자를 입력해주세요.");
    } else if ( result > 9 ) {
        System.out.println(" 9 이하의 숫자를 입력해주세요. ");
    } else {
        for (int i = 1; i < 10 ; i++) {
            System.out.println(result * i);
        }
    }

    }
}

 

3-1. 조건 추가 (향후 업데이트 예정)


  • 문제 : 올바른 입력 값을 받을때까지 반복하는 프로그램을 만드시오 

 

 

 

4. Array를 이용한 구구단 출력하기


  • Array 적용

https://www.w3schools.com/java/java_arrays.asp

https://www.codeit.kr/community/questions/UXVlc3Rpb246NWUzNDUyMjU4MGU1MTMzNzNkOTYyZGY2

특정 길이로 초기화만 하는 경우
int[] array = new int[10];
특정 값들로 초기화 하는 경우
int[] array = {1,2,3,4,5};

https://www.javatpoint.com/how-to-find-array-length-in-java

package gugudan;

import java.util.Scanner;

public class Ex5_sol {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int[] arrayResult = new int[9];

        for (int i = 1; i < arrayResult.length ; i++) {
            System.out.println(arrayResult[i]);
        }
    }
}

 

 

5. 메써드를 만들어 구구단 출력하기


  • 총 2개의 메써드 적용 (곱셈계산 / 출력)

메써드를 만들어서 사용하게 되면 다른 클래스에서도 활용 가능하다.

package gugudan;

public class Ex6_sol {

    /**곱셈 계산*/
    public static int[] Multiple(int number) {

        int[] result = new int[9];
        for (int i = 0; i < result.length; i++) {
            result[i] = number * (i + 1);
        }
        return result;
    }

    /**출력*/
    public static void PrintOnly(int[] result) {
        for (int i = 0; i < result.length; i++) {
            System.out.println(result[i]);
        }
    }

    public static void main(String[] args) {
        for (int i = 2; i < 10 ; i++) {
        int[] times = Multiple(i);
            PrintOnly(times);
        }
    }
}

 

6. 최종 미션


요구사항1

  • 사용자가 입력한 값에 따라 크기가 다른 구구단을 계산해 출력한다.
  • 예를 들어 사용자가 8을 입력하면 팔팔단, 19를 입력하면 십구십구단(2 * 1에서 19 * 19)을 계산해 출력한다.

요구사항2

  • 사용자가 입력한 값에 따라 크기가 다른 구구단을 계산해 출력한다.
  • 예를 들어 사용자가 "8,7"과 같은 문자열을 입력하면 팔칠단을 구현한다. 팔칠단은 2 * 1 ... 2 * 7, 3 * 1 ... 3 * 7, ... , 8 * 1 ... 8 * 7 까지 구현하는 것을 의미한다.

 

[요구사항1만 적용시]

package gugudan;

import java.util.Scanner;

public class Final1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int result = scanner.nextInt();

        for (int i = 1; i < result+1 ; i++) {
            System.out.println(result * i);
        }
    }
}

8 * 8 / 19 * 19단

 

[요구사항1 & 2 모두 적용시]

ㄴ string으로 입력 받아 split 처리

 

업데이트 예정.

 

 

 


[출처]

https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

'CodingTest > programmers-basic' 카테고리의 다른 글

코테 준비를 위한 시간복잡도  (1) 2023.11.09
002 a와 b 출력하기  (0) 2023.10.23
001. 문자열 출력하기  (0) 2023.10.23