점프투자바

SUADI·2022년 5월 27일

8. 종합 예제

문제 (1) 1~999까지 3과 5의 배수의 합

public class Sample {
    public static void main(String[] args) {
        int sum = 0;
        for (int i=1; i<1000; i++) {
            if (i %3 == 0 || i %5 == 0) {
                sum += i;
            }
        }
        System.out.println(sum);
    }

}

문제 (2) 게시판 페이징하기

public class Sample {
    static int getTotalPage(int m, int n) {
        // m : 총 게시물 수, n : 한 페이지 당 게시물 수
        if (m % n == 0) {
            return m / n;
        } else {
            return m / n + 1;
        }
    }

    public static void main(String[] args) {
        System.out.println(getTotalPage(5,5));
        System.out.println(getTotalPage(7,5));
        System.out.println(getTotalPage(30,11));
        System.out.println(getTotalPage(30,10));
    }

}
  • getTotal 메소드를 생성한다. 입력인자는 총 게시물수와 한페이지 당 게시물 수 두개로 하고, 두 입력인자가 나누어 떨어진다는 것은 한 페이지당 게시물을 꽉채운다는 의미이므로 m/n을 리턴하고, 나누어 떨어지지 않을 경우 나머지 게시물을 게시할 페이지가 하나 더 필요하기 떄문에 m/n+1을 리턴한다. main 메소드에서 메소드를 호출할 때엔 메소드가 static으로 선언되었기 때문에 클래스로 부터 호출하거나 그 자체로 사용할 수 있다.

문제 (3) 숫자의 자리수 구하기

sol 1)

import java.util.Scanner;

public class Sample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.printf("수 입력 : ");
        String n = scanner.nextLine();

        System.out.println(n.length());
    }

}
  • 숫자를 문자열로 입력을 받아서 문자열의 길이를 출력하면 쉽게 자리수를 구할 수 있다.

sol 2)

public class Sample {
    static int getDigitNum(int n) {
        int count = 0;
        while (true) {
            if (n == 0) {
                break;
            }
            n /= 10;
            count++;
        }
        return count;
    }
    
    public static void main(String[] args) {
        System.out.println(getDigitNum(123456));
    }
}
  • 반복문을 이용해서 수를 10으로 계속 나누면서 count를 올리고 0이 되었을 때의 count가 자리수임을 이용했다.

문제 (4) 공백을 제외한 글자수 세기

import java.util.Scanner;

public class Sample {
    static int getLetter(String line) {
        line = line.replace(" ", "");
        return line.length();
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.printf("문장 입력 :");
        String sentence = scanner.nextLine();
        System.out.println(getLetter(sentence));
    }
}
  • 문장에 포함된 띄어쓰기를 replace 함수를 이용해서 띄어 쓰기를 없앤 상태로 변수에 다시 저장하고, 그 변수의 길이를 리턴하는 메소드를 만들었다.

0개의 댓글