๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/1181
- ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง N๊ฐ์ ๋จ์ด๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
-
- ๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ
- ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก
- ๋จ, ์ค๋ณต๋ ๋จ์ด๋ ํ๋๋ง ๋จ๊ธฐ๊ณ ์ ๊ฑฐํด์ผ ํ๋ค.
- ์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20,000)
- ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 50์ ๋์ง ์๋๋ค.
- ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ์ฌ ๋จ์ด๋ค์ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- ๋จผ์ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ฐ์ง๊ณ ํ๋ฒ ์ ๋ ฌํ ํ, ๊ฐ์ ๊ธ์๊ธธ์ด๊ฐ ์์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํตํด ํ ๋ฌธ์์ฉ ์์คํค์ฝ๋๋ฅผ ๋น๊ตํด ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- ๋ง์์ง๋ง ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ๋ค... ๋ค๋ฅธ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋์ง ํ๋ฒ ์ฐพ์๋ด์ผ๊ฒ ๋ค.. ใ ใ
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ1181 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
// ์ค๋ณต๋ ๋จ์ด๋ค์ ๋ค์ด๊ฐ๋ฉด ์๋๋ฏ๋ก
Set<String> hash = new HashSet<String>();
for(int i = 0; i < N; i++){
String s = br.readLine();
hash.add(s);
}
// ์ ๋ ฌ๋ ๋จ์ด๋ค์ ์ ์ฅํ ๋ฐฐ์ด
String arr[] = new String[hash.size()];
int cnt = 0;
// set์ ๋ค์ ๋ฐฐ์ด๋ก ์ ํ
for(String i : hash){
arr[cnt] = i;
cnt = cnt + 1;
}
// ์ ์ฅ๋ ๋ฐฐ์ด์ ๋ฌธ์์ด ๊ธธ์ด๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
Arrays.sort(arr, (String s1, String s2) -> s1.length() - s2.length());
// ๋ฌธ์์ด ๊ธธ์ด๋๋ก ์ ๋ ฌ๋์ผ๋ ์ด์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌ
// i๋ฒ์งธ ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก
for(int i = 0; i < arr.length; i++){
// i๋ฒ ๋์ ๋ฌธ์์ด๊ณผ ๋น๊ต
for(int j = i + 1; j < arr.length; j++){
// ๋น๊ตํ์ ๋, i๋ฒ์งธ ๋ฌธ์์ด๊ณผ ๊ธธ์ด๊ฐ ๊ฐ๋ค๋ฉด
if(arr[i].length() == arr[j].length()){
// ๊ทธ ๋ ๋ฌธ์์ด๋ผ๋ฆฌ
for(int k = 0; k < arr[i].length(); k++){
// ์์์ ๋ถํฐ ๋ฌธ์์ ์์คํค์ฝ๋๋ฅผ ๋น๊ตํด์ ๋ง์ฝ i๋ฒ์งธ ๋ฌธ์์ด์
// ๋ฌธ์ ์์คํค์ฝ๋๊ฐ ๋ ํฌ๋ค๋ฉด ๋ ๋ฌธ์์ด์ ์์น๋ฅผ ๋ฐ๊ฟ
if(arr[i].charAt(k) > arr[j].charAt(k)){
String str = arr[i];
arr[i] = arr[j];
arr[j] = str;
break;
}
// ๊ธฐ์ค ๋ฌธ์์ ์์คํค์ฝ๋๊ฐ ๋ ์๋ค๋ฉด ๋น๊ตํ ๋ฌธ์์ด์
// ๋ค์ ๋ฌธ์์ด๋ก ๊ต์ฒด
if(arr[i].charAt(k) < arr[j].charAt(k)){
break;
}
}
}
}
}
for(int i = 0; i < hash.size(); i++){
System.out.println(arr[i]);
}
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 1676 ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (2) | 2024.07.14 |
---|---|
[Java] BOJ 1436 ์ํ๊ฐ๋ ์ (4) | 2024.07.14 |
[Java] BOJ 28702 FizzBuzz (0) | 2024.07.13 |
[Java] BOJ ์ดํญ ๊ณ์ 1 (0) | 2024.07.13 |
[Java] BOJ 10989 ์ ์ ๋ ฌํ๊ธฐ 3 (0) | 2024.07.13 |