View

📚 문제

각 자리가 숫자로만 이루어진 문자열 가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.

✔️ +보다 x를 먼저 계산하는 일반적인 방식과 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정
✔️ 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어짐

📝 문제 해설

두 수 중 하나라도 1 이하인 경우 -> 더하기

두 수가 모두 2 이상 -> 곱하기

 

💻 코드

package greedy;

import java.util.*;

public class greedy08 {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        String s = sc.next();

        long result = s.charAt(0)-'0';

        for(int i=1; i<s.length(); i++){
            int num = s.charAt(i)-'0';
            if(num<=1 || result<=1){
                result += num;
            }else{
                result *= num;
            }
        }

        System.out.println(result);
    }
}

 

[출처 : Facebook 인터뷰]

728x90
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31