문제
접근 방식
알파벳을 키로 , 정수형을 값으로 하는 HashMap을 생성한 후 해당 알파벳을 키로하여 값에 자리수를 더해준다 ( ABC → A : 100 , B : 10, C : 1 )
값들을 리스트로 만들고 정렬한 후 큰 값부터 9 , 8 .. 을 곱하여 합한다
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
public class Main_1339 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
HashMap<Character, Integer> map = new HashMap<>();
for(int i=0;i<N;i++) {
String str = br.readLine();
for(int j=0;j<str.length();j++) {
char alpha = str.charAt(j);
if(map.containsKey(alpha)) map.put(alpha, map.get(alpha) + (int)Math.pow(10, str.length() -1 -j));
else map.put(alpha, (int)Math.pow(10, str.length() -1 -j));
}
}
List<Integer> list = new ArrayList<>();
for(int num : map.values()) {
list.add(num);
}
Collections.sort(list,(a,b) -> b - a);
int sum = 0;
for(int i=0;i<list.size();i++) {
sum+= list.get(i) * (9-i);
}
System.out.println(sum);
}
}