๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 9794_Another Word Sorting

๋ฟŒ์•ผ._. 2025. 10. 30. 12:20
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/9794)

< Another Word Sorting >

 

๋ฌธ์ œ ํ’€์ด 

 

a = 1 ~ z = 26์œผ๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. a์˜ ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์ด 97์ด๋ฏ€๋กœ 96์„ ๋นผ์„œ 1๋กœ ์น˜ํ™˜ํ•œ๋‹ค. 

 

๋ณด๋„ˆ์Šค ์กฐ๊ฑด์„ ์ž˜ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.

ํ•œ ์Œ์˜ ์—ฐ์†๋œ ๊ธ€์ž๋Š” ํ•œ ๋ฒˆ๋งŒ ๋ณด๋„ˆ์Šค ๊ณ„์‚ฐํ•œ๋‹ค.

ex)
apppp(1+16+16+16+16+(2x16))๊ณผ ๊ฐ™์ด ๋ณด๋„ˆ์Šค๋Š” p ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐ๋œ๋‹ค.
appcpp(1+16+16+3+16+16+(2x16)+(2x16))

 

my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;

public class _9794_ { // Another Word Sorting
	static class Info implements Comparable<Info> {
		private String word;
		private int score;

		public Info(String word, int score) {
			this.word = word;
			this.score = score;
		}

		@Override
		public int compareTo(Info o) {
			if (o.score == this.score) {
				return this.word.compareTo(o.word);
			}
			return o.score - this.score;
		}
	}

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String str = "";

		ArrayList<Info> list = new ArrayList<>();
		while ((str = bf.readLine()) != null) {
			int num = str.charAt(0) - 96;

			boolean flag = false;
			for (int i = 1; i < str.length(); i++) {
				num += str.charAt(i) - 96;
				if (!flag && str.charAt(i - 1) == str.charAt(i)) {
					flag = true;
					num += (2 * (str.charAt(i) - 96));
				} else {
					flag = false;
				}
			}
			list.add(new Info(str, num));
		}

		Collections.sort(list);

		for (int i = 0; i < list.size(); i++) {
			bw.write(list.get(i).word + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
str : ์ž…๋ ฅ๊ฐ’
num : ์ ์ˆ˜
flag: ์—ฐ์† ์—ฌ๋ถ€
list : ์ž…๋ ฅ ๋‹จ์–ด, ์ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ArrayList

 

์ž…๋ ฅ์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ๋‹จ์–ด๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ ์ˆ˜ ๊ณ„์‚ฐ

2) ArrayList์— ๋‹จ์–ด์™€ ์ ์ˆ˜๋ฅผ ์ €์žฅ

 

์ตœ์ข… ArrayList๋ฅผ ์ ์ˆ˜ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ, ์•ŒํŒŒ๋ฒณ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 21149_Unread Messages  (0) 2025.11.03
[Baekjoon] 5741_Soccer League  (0) 2025.10.31
[Baekjoon] 4676_Haiku Review  (0) 2025.10.29
[Baekjoon] 5747_Odd or Even  (0) 2025.10.27
[Baekjoon] 5599_ใ‚ซใƒผใƒ‰ใฎไธฆใณๆ›ฟใˆ  (0) 2025.10.16