๋ฌธ์ (์ถ์ฒ: 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 |