새소식

알고리즘/문제

[BOJ/백준 - 1339] 단어 수학

  • -

문제 출처:https://www.acmicpc.net/problem/1339

 

1339번: 단어 수학

첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대

www.acmicpc.net


public class BOJ_1339 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testCase = Integer.parseInt(br.readLine());
char[][] cArr = new char[testCase][9];
int[] alp = new int[26];
for(int i=0; i<testCase; i++) {
String str = br.readLine();
int temp = 0;
for(int j=9-str.length(); j<9; j++) {
cArr[i][j] = str.charAt(temp);
temp++;
}
}
for(int i=0; i<testCase; i++) {
for(int j=0; j<9; j++) {
if(cArr[i][j]!='\u0000') {
alp[cArr[i][j]-65] += Math.pow(10, 8-j);
}
}
}
Arrays.sort(alp);
int answer = 0;
for(int i=9; i>=0; i--) {
answer += alp[i+16]*i;
}
System.out.println(answer);
}
}
view raw BOJ_1339.java hosted with ❤ by GitHub

해당 입력 각각 알파벳을 현재 몇번째 자리에 몇번 쓰였는지 계산한다

예를 들어 2번째 테스트케이스인

2 GCF ACDEB
10000 1 1010 100 10 1 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 

형태로 계산한 후 정렬,  제일 큰거부터 9 -> 0 으로 곱하면서 더해줌

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.