매일 Algorithm

신재원·2023년 4월 28일
0

Algorithm

목록 보기
109/243

프로그래머스 (콜라츠 추측)

class Solution {
    public int solution(int num) {
        int answer = 0;
        
        // int 타입의 범위를 넘어가서 long 타입으로 형 변환
        long number = num;
        
        if(number == 1){
            return 0;
        }
        
        while(number != 1){
            answer++;
            if(answer == 500){
                return -1;
            }
            
            if(number % 2 == 0){
                number /= 2;
            }else{
                number = number * 3 + 1;
            }
        }
        return answer;
    }
}

백준 1356번 (Bronze 1)

import java.util.Scanner;

public class problem356 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String inputString = in.nextLine();
        int length = inputString.length();

        boolean isCheck = false;

        // 12345 는 총 4가지로 나눌수있다.
        for (int i = 0; i < length - 1; i++) {

            int temp1 = 1; // 왼쪽 부분의 누적합
            int temp2 = 1; // 오른쪽 부분의 누적합


            // 왼쪽 부분의 합
            for (int j = 0; j <= i; j++) {
                temp1 *= inputString.charAt(j) - '0';

            }

            // i+1 번째부터 시작하는 이유는 나눌수 있는 가지수에서
            // 왼쪽부분을 제외하고 누적해줘야된다.
            for (int k = i + 1; k < length; k++) {
                temp2 *= inputString.charAt(k) - '0';
            }

            if (temp1 == temp2) {
                isCheck = true;
                break;
            }
        }

        if (isCheck) {
            System.out.println("YES");
        } else {
            System.out.println("NO");
        }
    }
}

코드업 1124번

import java.util.Scanner;

public class problem358 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // C3H20
        // H를 기준으로 split하기 때문에
        // inputString[0] = C3, inputString[1] = 20 으로 반환됩니다.
        String[] inputString = in.nextLine().split("H");

        String inputStringSub = inputString[0].substring(1);


        System.out.println(12 * Integer.parseInt(inputStringSub) +
        	Integer.parseInt(inputString[1]));


    }
}

0개의 댓글