๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1141)
< ์ ๋์ฌ >
๋ฌธ์ ํ์ด
์ ๋์ฌ X์งํฉ์ธ ๋ถ๋ถ์งํฉ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์๋ ํ ๋จ์ด๊ฐ ๋ค๋ฅธ ๋จ์ด์ ์ ๋์ด๊ฐ ๋๋ ๋จ์ด๋ฅผ ํ๋์ฉ ๋นผ๋ฉด ๋๋ค๊ณ ์๊ฐํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์๋ฅผ ๋ค์ด [h, hi, hello]๊ฐ ์๋ค๋ฉด h๊ฐ hi์ ์ ๋์ด ์ด๋ฏ๋ก ์ ์ธํ๊ณ hi๋ hello์ ์ ๋์ด๊ฐ ์๋๋ฏ๋ก [h], [hi, hello]๋ก ๋๋๋ฉด ๋ถ๋ถ ์งํฉ์ ์ต๋ ํฌ๊ธฐ์ธ 2๋ฅผ ๊ตฌํ ์ ์๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class _1141_ { // ์ ๋์ฌ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
String arr[] = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = bf.readLine();
}
Arrays.sort(arr);
int result = 0;
boolean flag = false;
for (int i = 0; i < n - 1; i++) {
flag = false;
for (int j = 0; j < arr[i].length(); j++) {
if (arr[i].charAt(j) != arr[i + 1].charAt(j)) {
flag = true;
}
if (flag) {
break;
}
}
if (!flag) {
result += 1;
}
}
System.out.println(n - result);
}
}
Main
๋ณ์)
n : ๋จ์ด์ ๊ฐ์
arr : ๋จ์ด ์ ์ฅ ๋ฐฐ์ด
result : ๋ค๋ฅธ ๋จ์ด์ ์ ๋์ด์ธ ๋จ์ด ๊ฐ์
flag : ์ผ์น ์ฌ๋ถ
๋จ์ด์ ๊ฐ์(n)๋ฅผ ์ ๋ ฅ๋ฐ์ ํ ๋จ์ด์ ๊ฐ์๋งํผ ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
ํ ๋จ์ด๊ฐ ๋ค๋ฅธ ๋จ์ด์ ์ ๋์ด๊ฐ ๋๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ๋น์ทํ ๋จ์ด๋ผ๋ฆฌ ํ์ธํด์ผ ํ๋ฏ๋ก ์ ๋ ฌํด ์ค๋ค.
์ ๋ ฌํ ๋ฐฐ์ด์ ์ํํ๋ฉฐ ์ธ์ ํ ๋จ์ด์(=๋ค์ ๋จ์ด์) ์ ๋์ด์ธ์ง ํ์ธํ๋ค. ์ ๋์ด๋ผ๋ฉด result +1์ ํด์ค๋ค.
์ต์ข ์ถ๋ ฅํด์ผ ํ๋ ์ ๋์ฌ X ์งํฉ์ธ ๋ถ๋ถ์งํฉ์ ์ต๋ ํฌ๊ธฐ๋ (์ ์ฒด ๋จ์ด์ ๊ฐ์) - (๋ค๋ฅธ ๋จ์ด์ ์ ๋์ด์ธ ๊ฒฝ์ฐ)์ด๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 5671_ํธํ ๋ฐฉ ๋ฒํธ (0) | 2023.11.14 |
---|---|
[Baekjoon] 1916_์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2023.11.10 |
[Baekjoon] 1713_ํ๋ณด ์ถ์ฒํ๊ธฐ (0) | 2023.11.08 |
[Baekjoon] 9659_๋ ๊ฒ์ 5 (0) | 2023.11.07 |
[Baekjoon] 26215_๋ ์น์ฐ๊ธฐ (0) | 2023.11.06 |