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
'알고리즘 > 이코테' 카테고리의 다른 글
[동적 계획법] 이코테 못생긴 수(Java) (1) | 2022.11.16 |
---|---|
[그리디] 이코테 모험가 길드(Java) (0) | 2022.07.26 |
10. 그래프 이론 - 위상 정렬 (0) | 2022.07.25 |
reply