알고리즘(28)
-
알고리즘 : 프로그래머스 : JAVA : 자연수 뒤집어 배열로 만들기
class Solution { public int[] solution(long n) { long num = n; int cnt = 0; while(num != 0){ num /= 10; cnt++; } int[] answer = new int[cnt]; num = n; for(int i = 0; num != 0; i++){ answer[i] = (int)(num % 10); num /= 10; } return answer; } } 1. n의 길이 구하기 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열을 만들기 위해 배열을 선언할 때 필요한 길이를 구해야한다. long 타입의 num을 n으로 초기화하고 길이를 나타낼 int 타입의 cnt를 선언한다. num이 0이 아닐 때까지 num을 10으로 나누면서 c..
2022.01.19 -
알고리즘 : 프로그래머스 : JAVA : 자릿수 더하기
public class Solution { public int solution(int n) { // 합을 구하기 위한 변수 answer 선언 int answer = 0; while(n != 0) { // 입력한 값을 10으로 나눈 나머지를 answer 에 더한다 // 만약 입력한 값이 135 라면 135%10 = 5 이다. (%10 = 1의 자리 구하는 방식) // answer += 5 인 셈이다. answer += n%10; // 입력한 값에 10을 나눈다. 135를 10으로 나누면 13.5 지만 int 형이므로 13이 남는다. n /= 10; } // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. System.out.println("Hello Java"); return answer; } } 이를..
2022.01.19 -
알고리즘 : 프로그래머스 : JAVA : 이상한 문자 만들기
class Solution { public String solution(String s) { String answer = ""; int idx = 0; String[] strArr = s.split(""); for(int i=0; i
2022.01.19 -
알고리즘 : 프로그래머스 : JAVA : 제일 작은 수 제거하기
class Solution { public int[] solution(int[] arr) { if(arr.length
2022.01.19 -
알고리즘 : 프로그래머스 : JAVA : 정수 제곱근 판별
class Solution { public long solution(long n) { long sqrt = (long) Math.sqrt(n); // 1. 제곱근을 구해주는 함수다. 제곱근을 구해서 if(n == Math.pow(sqrt,2)) { // 2. 구한 제곱근을 제곱한뒤 n과 비교 return (long)(Math.pow(sqrt+1, 2)); //3. }else { //4 return -1; } } } 임의의 양의 정수 n에 대해 n이 어떤 양의 정수 x의 제곱인지 판단하기 위해서, n의 제곱근을 제곱을 해준 뒤 n과 비교하면 된다. 1. Math.sqrt(n)를 통해 제곱근을 찾는다. 2. 1번에서 찾은 제곱근을 Math.pow()를 사용하여 제곱한뒤 비교한다. 3. n이 어떤 양의 정수 ..
2022.01.19 -
알고리즘 : 프로그래머스 : JAVA : 콜라츠 추측
class Solution { public int solution(int n) { long num = n; // 오버플로우 방지를 위한 형변환 필요 int count = 0; while (num != 1) { if (num % 2 == 0) { /* 짝수일 경우 */ num /= 2; // num = num / 2; } else { /* 홀수일 경우 */ num = num * 3 + 1; } count++; // count값을 먼저 사용한 후 1 증가 if (count > 500) // count값이 500을 넘으면 -1로 리턴 return -1; } return count; } } 1. 매개변수로 입력 받은 int형 n 값을 long으로 바꿔주지 않으면 오버 플로우가 나와서, 음수로 한 번 바뀌기 때문..
2022.01.19