22.09.30_모각코 1회차

2022. 9. 30. 15:27모각코

목표

- 객체지향프로그래밍 과제 10문제 풀기(과제 4)

내용

(무언가 하나라도 얻어간 문제만 기재)

 

1.

문제 설명

  • 두 자연수 a, b 사이의 구간에 대해서 홀수는 더하고 짝수는 뺀다음의 합을 출력하시오. 예) a = 5, b=10 일 경우, 5 - 6 + 7 - 8 + 9 - 10 = -3

입력

  • 두 자연수 a, b를 함수의 인자값으로 받는다. ( a <= b )

출력

  • a, b 사이의 수 중 홀수는 더하고 짝수는 뺀 결과를 리턴하시오.
class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        for (int i = a; i <= b; i++) {
            // if (i % 2 != 0) {
            //     answer += i;
            // } else {
            //     answer -= i;
            // }
            answer = i%2!=0 ? answer + i : answer - i; // 삼항 연산자를 이용해봤다
        }
        return answer;
    }
}

5.

문제 설명

함수의 인자값으로 양의 정수 n이 주어진다. 이때, 1부터 9까지의 구구단을 구하여 배열의 형태로 리턴하는 함수를 구현하시오.

입출력 예
|입력값|결과값|
|-----|----|
|3|[3, 6, 9, 12, 15, 18, 21, 24, 27]|

class Solution {
    public int[] solution(int n) {
        // int[] answer = {n*1, n*2, n*3, n*4, n*5, n*6, n*7, n*8, n*9}; // 요소가 9개밖에 안되므로 배열 선언할 때 바로 값을 초기화 시켜줌
        // return answer;
        int[] answer = new int[9];
        for (int i = 0; i < 9; i++) {

9.

문제 설명

함수의 인자값으로 양의 정수 n이 주어진다. 이때, 2이상 n이하의 수들 중 어떤 수의 제곱한 수가 아닌 수의 개수를 구해 리턴하는 함수를 구현하시오.

입출력 예
|입력값|결과값|
|-----|----|
|10|7|

예제 설명
2 이상 10 이하의 수들중 어떤수의 제곱이 아닌수는 2, 3, 5, 6, 7, 8, 10으로 총 7개이다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        // for (int i = 2; i <= n; i++) { // Math.sqrt를 이용하여 쉽게 풀 수 있음
        //     if (Math.sqrt(i) != (int)Math.sqrt(i)) {
        //         answer += 1;
        //     }
        // }
        for (int i = 2; i <= n; i++) {// 이중for문으로도 풀 수 있음 
            for (int j = 2; j <= i; j++) {
                if (i == j*j) {
                    break;
                }
                if (i == j) {
                    answer += 1;
                }
            }
        }
        return answer;
    }
}

10.

문제 설명

함수의 인자값으로 양의 정수 n이 주어진다. 이때, n의 자리수중 가장 큰 수를 리턴하는 함수를 구현하시오.

입출력 예
|입력값|결과값|
|-----|----|
|6134527|7|

예제 설명
주어진 6134527의 각 자리수를 살펴보면, 가장 큰 수가 7임을 알수있다. 결과값 7을 리턴.

class Solution {
    public int solution(int n) {
        // int answer = n % 10;
        // int length = (int)(Math.log10(n) + 1); // 로그를 통해 자릿수를 구함
        // for (int i = 0; i < length; i++) {
        //     n /= 10;
        //     if (n % 10 > answer) {
        //         answer = n % 10;
        //     }
        // }
        int answer = n % 10;
        while (true) { // while문으로 Math를 이용하지 않고 자릿수를 구할 숭 
            n /= 10;
            if (n % 10 > answer) {
                answer = n % 10;
            }
            if (n < 10) {
                break;
            }
        }
        return answer;
    }
}

회고

- 로그를 통해 정수의 자릿수를 셀 수 있다는 것을 알았다.

- 삼항 연산자를 활용하여 쓰는 법을 익혔다.

- 자바에서 for문 쓰는 법과 증감 연산자에 대한 이해도가 올라갔다.

'모각코' 카테고리의 다른 글

22.11.25_모각코 6회차  (1) 2022.11.30
22.11.18_모각코 5회차  (0) 2022.11.30
22.11.11_모각코 4회차  (0) 2022.11.30
22.11.04_모각코 3회차  (0) 2022.11.07
22.10.07_모각코 2회차  (0) 2022.10.10