본문 바로가기
알고리즘/알고리즘 설명

[Java] 문제풀이 (Programmers)

by JayAlex07 2023. 5. 28.

Java 문제풀이 (Programmers)

 

 

삼총사

수열을 잘 만들면 된다

  • 삼총사를 구하면 되기 때문에, 3중 for문을 이용하면 된다
class Solution {
    public int solution(int[] number) {
        int answer = 0;

        for (int i = 0; i < number.length - 2; i ++) {
            for (int j = i + 1; j < number.length - 1; j ++) {
                for(int k = j + 1; k < number.length; k ++) {
                    if (number[i] + number[j] + number[k] == 0) {
                        answer += 1;
                    }
                }
            }
        }

        return answer;
    }
}

 

 

나머지 구하기

연산자 % 를 사용하여, 나머지를 구하는 것이다

class Solution {
    public int solution(int num1, int num2) {
        int answer = num1 % num2;
        return answer;
    }
}

 

 

나이 출력

그냥 연도에 나이를 빼는 방법도 있지만 localDate을 사용하는 방법도 있다

 

그냥 빼버리기

class Solution {
    public int solution(int age) {
        int answer = 2022 - (age - 1);
        return answer;
    }
}

 

locatDate 사용하기

  • 현재 시간을 출력하는 것이다
  • 즉 년도가 바뀌면, 바뀌는 만큼 또 계산을 해야 한다는 것 (문제의 기준은 2022년이다)
import java.time.*;

class Solution {
    public int solution(int age) {


        LocalDate DateNow = LocalDate.now();

        int answer = DateNow.getYear() - age;

        return answer;
    }
}

 

 

 

각도기

조건문을 사용하는 것

  • 즉 if문과 else if 문을 사용하면 된다
class Solution {
    public int solution(int angle) {
        int answer = 0;

        if (angle < 90) {
            answer = 1;
        } else if (angle == 90) {
            answer = 2;
        } else if (angle < 180) {
            answer = 3;
        } else if (angle == 180) {
            answer = 4;
        }

        return answer;
    }
}

 

 

 

짝수의 합

for문을 돌면서 n 이하의 수들을 순회한다

if문을 통해 짝수를 구해주면서, 짝수인 수들을 더하면 된다

class Solution {
    public int solution(int n) {
        int answer = 0;

        for (int i = 1; i <= n ; i ++) {
            if (i % 2 == 0) {
                answer += i;
            }
        }

        return answer;
    }
}

 

 

 

배열의 평균값

for문을 통해 배열에 있는 원소들의 값을 모두 더해준다

원소의 수만큼 나눠주면 평균값이 나온다

class Solution {
    public double solution(int[] numbers) {
        double answer = 0;

        for (int i = 0; i < numbers.length; i ++) {
            answer += numbers[i];
        }

        return answer / numbers.length;
    }
}

'알고리즘 > 알고리즘 설명' 카테고리의 다른 글

[Java] 문제풀이 (Programmers)  (0) 2023.06.01
[Java] 문제풀이 (Programmers)  (1) 2023.05.30
그래프 탐색  (0) 2023.05.25
다이나믹 프로그래밍  (0) 2023.05.24
그리디 알고리즘, 원인과 결과 찾기  (0) 2023.05.23