이것이 코딩테스트다 - 곱하기 혹은 더하기 (java)
2023. 2. 20. 16:22ㆍ코딩테스트/이것이 코딩테스트다
문제
각 자리가 0부터 9로만 이루어진 문자열 s가 주어질 때 숫자 사이에 x 혹은 + 연산자를 넣어 가장 큰 수를 구하라
입력 조건
첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 s가 주어진다.
출력 조건
첫째 줄에 만들어 질 수 있는 가장 큰 수를 출력한다.
나의 풀이
public class greedy02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0 ; i < s.length(); i++) {
arrayList.add(String.valueOf(s.charAt(i)));
}
int answer = Integer.parseInt(arrayList.get(0));
for (int i = 1; i < s.length(); i++) {
int number = Integer.parseInt(arrayList.get(i));
if (answer <= 1 || number <= 1) {
answer += number;
} else {
answer *= number;
}
}
System.out.println("answer = " + answer);
}
}
계산을 할 떄 0 이나 1이 있을 경우에는 더하기를 하는 것이 유리하고 나머지인 경우는 곱하기가 유리하다.
'코딩테스트 > 이것이 코딩테스트다' 카테고리의 다른 글
| 이것이 코딩테스트다 모험가 길드(java) (0) | 2023.02.20 |
|---|---|
| 이것이 코딩테스트다. 그리디 - 1이 될 때까지 (java) (0) | 2022.12.31 |
| 이것이 코딩테스트다. 그리디 - 숫자 카드 게임 (java) (0) | 2022.12.31 |
| 이것이 코딩테스트다. 그리디 - 큰 수의 법칙 (java) (0) | 2022.12.30 |
| 이것이 코딩테스트다. 그리디 - 거스름돈(java) (0) | 2022.12.30 |