1181๋ฒ: ๋จ์ด ์ ๋ ฌ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20,000) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 50์ ๋์ง ์๋๋ค.
www.acmicpc.net
๋ฌธ์
์์ค ์ฝ๋
ํ์ด
โ ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ๋ฐ์ ๋ณ์ N์ ์์ฑํ๋ค.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
โ ๋ฌธ์์ด์ ๋ฐ์ ๋ฐฐ์ด arr๊ณผ for๋ฌธ์ ํตํด ๋ฌธ์์ด์ ๋ฃ์ด์ค๋ค.
String[] arr = new String[N];
for (int i = 0 ; i < N; i++) {
arr[i] = br.readLine();
}
โ Arrays.sort()๋ฅผ ํตํด ์ ๋ ฌ์ ํ๋ค. Comparator๋ฅผ ๋๋ค์์ผ๋ก ๊ตฌํํด ๋ฃ์ด์ค๋ค.
Arrays.sort(arr,(s1, s2) -> {
if (s1.length() == s2.length()) {
return s1.compareTo(s2);
}
else return s1.length() - s2.length();
} );
์ ์ฝ๋๋ arr[0].length() == arr[1].length() ์ผ ๊ฒฝ์ฐ ์ฌ์ ์(compareTo())์ผ๋ก ์ ๋ ฌํ๊ณ ,
๊ทธ ์ธ์ ์ํฉ์์๋ s1.length() - s2.length()๋ฅผ ํ๋ค๋ ๋ป์ด๋ค.
Comparator์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐํํ์ ์ด ์ ์ํ์ธ๋ฐ,
์์์ 0์ผ ๊ฒฝ์ฐ์๋ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ์ง ์๊ณ , ์์์ผ ๊ฒฝ์ฐ์๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค.
โ ๋ฐฐ์ด arr์ [0]๋ฒ ์ธ๋ฑ์ค๋ง ๋ฐ๋ก ๋จผ์ ์ถ๋ ฅํ๋ค.
System.out.println(arr[0]);
โ for๋ฌธ์ ํตํด ์ถ๋ ฅ์ ํ์ง๋ง ๋ง์ฝ arr[i]๋ฒ ์ธ๋ฑ์ค ๊ฐ๊ณผ arr[i-1] ์ธ๋ฑ์ค ๊ฐ์ด ๊ฐ์ง ์์๊ฒฝ์ฐ์๋ง ์ถ๋ ฅํ๊ฒ ํ๋ค.
for (int i = 1; i < N; i++) {
if (!arr[i].equals(arr[i-1])) {
System.out.println(arr[i]);
}
}
์ฐธ์กฐ
[๋ฐฑ์ค] 1181๋ฒ : ๋จ์ด ์ ๋ ฌ - JAVA [์๋ฐ]
www.acmicpc.net/problem/1181 1181๋ฒ: ๋จ์ด ์ ๋ ฌ ์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1≤N≤20,000) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ
st-lab.tistory.com
'๐ Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 18870๋ฒ : ์ขํ ์์ถ (0) | 2022.12.17 |
---|---|
[๋ฐฑ์ค] 10814๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2022.12.17 |
[๋ฐฑ์ค] 11651๋ฒ : ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.12.17 |
[๋ฐฑ์ค] 11650๋ฒ : ์ขํ ์ ๋ ฌํ๊ธฐ (0) | 2022.12.17 |
[๋ฐฑ์ค] 1427๋ฒ : ์ํธ์ธ์ฌ์ด๋ (0) | 2022.12.15 |