본문 바로가기

혼자 코딩 공부하기/프로그래머스 코딩테스트

231219 프로그래머스 Lv.1

짝수 홀수

class Solution {
    public String solution(int num) {
        String answer = "";
        if (num % 2 == 0) {
            answer = "Even";
        } else {
            answer = "Odd";
        }
        return answer;
    }
}

 

약수의 합

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= n; i++) {
            if (n % i == 0) {
                answer += i;
            }
        }
        return answer;
    }
}

 

평균 구하기

class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        for(int i : arr) {
            answer += i;
        }
        answer /= arr.length;
        return answer;
    }
}

 

문자열을 정수로 바꾸기

class Solution {
    public int solution(String s) {
        int answer = Integer.parseInt(s);
        return answer;
    }
}

 

나머지가 1이 되는 수 찾기

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i < n; i++) {
            if (n % i == 1) {
                answer = i;
                break;
            }
        }
        return answer;
    }
}

 

x 만큼 간격이 있는 n 개의 문자

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        for (int i = 0, j = 1; i < answer.length; i++) {
            answer[i] = (long)(x) * j;
            j++;
        }
        return answer;
    }
}

 

자릿수 더하기

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String s = String.valueOf(n);
        for(int i = 0; i < s.length(); i++) {
            answer += (s.charAt(i) - '0');
        }
        return answer;
    }
}

 

문자열 내 p 와 y 의 개수

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int pcnt = 0, ycnt = 0;
        for(int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == 'p' || s.charAt(i) == 'P') {
                pcnt++;
            } else if (s.charAt(i) == 'y' || s.charAt(i) == 'Y') {
                ycnt++;
            }
        }
        answer = pcnt == ycnt ? true : false;
        return answer;
    }
}

 

자연수 뒤집어 배열 만들기

import java.util.Collections;
import java.util.Arrays;
class Solution {
    public int[] solution(long n) {
        String s = String.valueOf(n);
        int[] answer = new int[s.length()];
        for (int i = 0, j = answer.length - 1; i < answer.length; i++) {
            answer[j--] = s.charAt(i) - '0';
        }
        // Arrays.sort(answer, Collections.reverseOrder()); 역순은 어떻게..
        return answer;
    }
}

 

정수 제곱근 판별

class Solution {
    public long solution(long n) {
        long answer = 0;
        for(int i = 1; i <= 7071068; i++) {
            if ((long)i * i == n) {
                answer = (long)(i+1) * (i+1);
            }
        }
        if (answer == 0) {
            answer = -1;
        }
        return answer;
    }
}

 

정수 내림차순으로 정렬하기

import java.util.*;
class Solution {
    public long solution(long n) {
        String s = String.valueOf(n);
        String[] sArr = s.split("");
        Arrays.sort(sArr, Collections.reverseOrder());
        String ss = "";
        for(String cc : sArr) {
            ss += cc;
        }
        long answer = Long.parseLong(ss);
        return answer;
    }
}

 

하샤드 수

class Solution {
    public boolean solution(int x) {
        int i = 0;
        int temp = x;
        boolean answer = false;
        while (x > 0) {
            i = i + x % 10;
            x /= 10;
        }
        if (temp % i == 0) {
            answer = true;
        }
        return answer;
    }
}

 

두 정수 사이의 합

class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        if (a == b) {
            return a;
        } else if (a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        for(int i = a; i <= b; i++) {
            answer = (long) answer + i;
        }
        return answer;
    }
}

 

콜라츠 추측

class Solution {
    public int solution(long num) {
        int answer = 0;
        while (answer < 500) {
            if (num == 1) break;
            
            if (num % 2 == 0) {
                num /= 2;
            } else if (num % 2 != 0) {
                num = num * 3 + 1;
            }
            answer++;
        }
        answer = answer == 500 ? -1 : answer;
        return answer;
    }
}