반응형
문제는 대략 저렇읍니다.
내가 보기엔 직전 문제인 신입 사원이랑 이 문제랑 난이도가 바뀌어야 할 것 같다...
나는 어떻게 해결했냐면, 알파벳은 어차피 다 더해야 하는 수이므로 일단 자릿수만큼 1, 10, 100, 1000, ....으로 할당해서 같은 알파벳끼리 다 더해서 배열에 저장했다.
그리고 그 배열을 처음부터 다시 돌면서 가장 값이 높은 순서대로 9, 8, 7, 6, ..., 1까지 할당해서 곱해준 다음 sum에 다 합쳐서 출력해 주었다.
import java.lang.StringBuilder;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class WordMath {
public static int stoi(String str) {
return Integer.parseInt(str);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Integer[] arr = new Integer[91];
for (int i=0; i<91; i++) {
arr[i] = 0;
}
int N = stoi(br.readLine());
for (int i=0; i<N; i++) {
String num = br.readLine();
int ten = 1;
for (int j=0; j<num.length(); j++) {
char temp = num.charAt(num.length()-1-j);
arr[temp] += ten;
ten *= 10;
}
}
Arrays.sort(arr, Collections.reverseOrder());
int result = 0;
int nine = 9;
for (int i=0; arr[i] != 0;i++) {
result += (arr[i] * nine);
nine--;
}
System.out.println(result);
br.close();
}
}
로그인
www.acmicpc.net
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : 수 묶기 (1744번) (0) | 2024.05.06 |
---|---|
[백준] JAVA 자바 : 보석 도둑 (1202번) (0) | 2024.03.22 |
[백준] JAVA 자바 : 신입 사원 (1946번) (0) | 2024.03.22 |
[백준] JAVA 자바 : 30 (10610번) (0) | 2024.03.14 |
[백준] JAVA 자바 : A → B (16953번) (0) | 2024.03.14 |