[Algorithm] ๐Ÿงฎ ๋ฐฑ์ค€ 1339 ๋‹จ์–ด ์ˆ˜ํ•™

HaJingJingยท2021๋…„ 8์›” 24์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
96/119

0. ๋ฌธ์ œ

๋ฏผ์‹์ด๋Š” ์ˆ˜ํ•™ํ•™์›์—์„œ ๋‹จ์–ด ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์ˆ™์ œ๋ฅผ ๋ฐ›์•˜๋‹ค.


๋‹จ์–ด ์ˆ˜ํ•™ ๋ฌธ์ œ๋Š” N๊ฐœ์˜ ๋‹จ์–ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ด๋•Œ, ๊ฐ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋ฅผ 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ”๊ฟ”์„œ N๊ฐœ์˜ ์ˆ˜๋ฅผ ํ•ฉํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์€ ๊ฐ™์€ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๋ฉฐ, ๋‘ ๊ฐœ ์ด์ƒ์˜ ์•ŒํŒŒ๋ฒณ์ด ๊ฐ™์€ ์ˆซ์ž๋กœ ๋ฐ”๋€Œ์–ด์ง€๋ฉด ์•ˆ ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, GCF + ACDEB๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7๋กœ ๊ฒฐ์ •ํ•œ๋‹ค๋ฉด, ๋‘ ์ˆ˜์˜ ํ•ฉ์€ 99437์ด ๋˜์–ด์„œ ์ตœ๋Œ€๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์ˆ˜์˜ ํ•ฉ์„ ์ตœ๋Œ€๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋ชจ๋“  ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์€ ์ตœ๋Œ€ 10๊ฐœ์ด๊ณ , ์ˆ˜์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 8์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง„ ๋‹จ์–ด์˜ ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ์ˆซ์ž๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 10์˜ ์ž๋ฆฌ๋กœ ์น˜ํ™˜ํ•จ
๐Ÿ’ก ๊ฐ ๋‹จ์–ด๋ณ„ ๊ฐ€์ค‘์น˜๋ฅผ ์ •ํ•ด์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•จ
๐Ÿ’ก ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜๊ฐ€ ํฐ ์•ŒํŒŒ๋ฒณ๋ถ€ํ„ฐ 9 ~ 0 ์ˆซ์ž๋ฅผ ๋ฐฐ์ •ํ•˜์—ฌ ๋”ํ•จ

2. ํ•ต์‹ฌ ํ’€์ด

  1. ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ์ˆซ์ž๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 10์˜ ์ž๋ฆฌ๋กœ ์น˜ํ™˜ํ•จ
for(int i=0; i<n; i++) {
	String str = br.readLine();
	int length = str.length();
			
	for(int j=0; j<length; j++) {
		alpha[str.charAt(j)-65] += (int) Math.pow(10, length-j-1);
	}
}
  1. ๊ฐ ๋‹จ์–ด๋ณ„ ๊ฐ€์ค‘์น˜๋ฅผ ์ •ํ•ด์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•จ
Arrays.sort(alpha, Collections.reverseOrder());
  1. ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜๊ฐ€ ํฐ ์•ŒํŒŒ๋ฒณ๋ถ€ํ„ฐ 9 ~ 0 ์ˆซ์ž๋ฅผ ๋ฐฐ์ •ํ•˜์—ฌ ๋”ํ•จ
int sum = 0;
int num = 9;
for(int ele : alpha) {
	if(ele == 0) break;
	sum += (num*ele);
	num--;
}

3. ์ฝ”๋“œ

import java.io.*;
import java.util.Arrays;
import java.util.Collections;
public class BOJ_1339 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		Integer[] alpha = new Integer[26];
		Arrays.fill(alpha, 0);
		
		for(int i=0; i<n; i++) {
			String str = br.readLine();
			int length = str.length();
			
			for(int j=0; j<length; j++) {
				alpha[str.charAt(j)-65] += (int) Math.pow(10, length-j-1);
			}
		}
		
		Arrays.sort(alpha, Collections.reverseOrder());
		
		int sum = 0;
		int num = 9;
		for(int ele : alpha) {
			if(ele == 0) break;
			sum += (num*ele);
			num--;
		}
		
		System.out.println(sum);
	}

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€