프로그래머스 코딩테스트 [Java]

가운데 글자 가져오기

💫문제 설명💫

단어 s의 가운데 글자를 반환하는 함수,
solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

💫제한사항💫

s는 길이가 1 이상, 100이하인 스트링입니다.

💫입출력 ex💫

s return
“abcde” “c”
“qwer” “we”

문제풀이

class Solution {
    public String solution(String s) {
        return s.substring((s.length()-1) / 2, s.length() / 2 + 1);
    }
}

수박수박수박수박수박수?

💫문제 설명💫

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.
예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

💫제한사항💫

n은 길이 10,000이하인 자연수입니다.

💫입출력 ex💫

n return
3 “수박수”
4 “수박수박”

문제풀이

class Solution {
    public String solution(int n) {
        
        String answer = "";
        for(int i=1;i<=n;i++){
            answer += i % 2!=0 ? "수" : "박";
        }
        return answer;
    }
}

내적

💫문제 설명💫

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.

이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)

💫제한사항💫

a, b의 길이는 1 이상 1,000 이하입니다.
a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

💫입출력 ex💫

a b result
[1,2,3,4] [-3,-1,0,2] 3
[-1,0,1] [1,0,-1] -2

문제풀이

class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 0;
        
        for(int i=0; i < a.length; i++) {
            answer += a[i]*b[i];
        }
        return answer;
    }
}

약수의 개수와 덧셈

💫문제 설명💫

두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

💫제한사항💫

1 ≤ left ≤ right ≤ 1,000

💫입출력 ex💫

left right result
13 17 43
24 27 52

문제풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        for(int i=left; i <= right; i++) {
            int cnt = 0;
            for(int j = 1; j <= i; j++) {
                if(i % j == 0) cnt++;
            }
            
            if(cnt % 2 == 0) {
                answer += i;
            } else {
                answer -= i;
            }

        }
        return answer;
    }
}

문자열 내림차순으로 배치하기

💫문제 설명💫

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

💫제한사항💫

str은 길이 1 이상인 문자열입니다.

💫입출력 ex💫

s return
“Zbcdefg” “gfedcbZ”

문제풀이

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] list = s.split("");
        Arrays.sort(list, Collections.reverseOrder());
        
        for(String up : list) {
            answer += up;
        }
        
        
        return answer;
    }
}

Categories:

Updated:

Leave a comment