1316 ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค
(์๋ฐ8 68ms, ์๋ฐ11 108ms)
๋ฌธ์ ์ดํด๊ฐ ์๋์๋ค.
๋์ฒด ๋จ์ด N๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ๋๊ฑฐ๋ ๋ญ์๊ด์ด์ง?
โ๏ธ ๋ฌธ์ ํด์ค
N๊ฐ์ ์ ๋ ฅ๋ฐ์ ๋จ์ด์ค์์,
“๊ทธ๋ฃน๋จ์ด”๊ฐ ๋ช๊ฐ์ธ์ง ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
๐ก ๊ทธ๋ฃน๋จ์ด๋?
๋จ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์์ ๋ํด, ๊ฐ ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋ํ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
abc ⇒ a,b,c๊ฐ ์ฐ์ํด์ ๋ํ๋๋ฏ๋ก ๊ทธ๋ฃน๋จ์ด.
aba ⇒ a,b๊ฐ ๋์จ ๋ค์ ๋ a๊ฐ ๋ํ๋๋ฏ๋ก ๊ทธ๋ฃน๋จ์ด ์๋.
aab ⇒ aa,b ์ฆ, a,b๊ฐ ์ฐ์ํด์ ๋ํ๋๋ฏ๋ก ๊ทธ๋ฃน๋จ์ด.
happy ⇒ h,a,p,y๊ฐ ์ฐ์ํด์ ๋ํ๋๋ฏ๋ก ๊ทธ๋ฃน๋จ์ด.
์ฆ ์์์ ๊ทธ๋ฃน๋จ์ด๋ 3๊ฐ์ด๋ค.
โ๏ธ ๋ฌธ์ ํ์ด
๐ญ ๋์ ์๊ฐ:
๊ธฐ์ค ๋ฌธ์๋ฅผ ํ๋ ์ก๊ณ , ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์
๊ธฐ์กด๋ฌธ์์ ๋์ผํ ๋ฌธ์๊ฐ ๋ฐ๋ก ์์ด ์๋๋ผ ๋ฌ๊ธ์๋ ์ธ๋ฑ์ค์ ์กด์ฌํ๋ค๋ฉด
๊ทธ๊ฑด ๊ทธ๋ฃน๋จ์ด๊ฐ ์๋๋ผ๊ณ ์๊ฐํ์๋ค.
๋ฌธ์ aba๋ฅผ ์์๋ก ๋ค์ด๋ณด์๋ฉด,
๋ฌธ์ aba์์์ ๊ธฐ์ค ๋ฌธ์๋ฅผ a๋ก ์ก์. ์ธ๋ฑ์ค๋ [0]์ด๋ค. ๊ทธ๋ฃน๋จ์ด๋ผ๋ฉด aaaab์ฒ๋ผ a ๋ฐ๋ก ์์ a๊ฐ ๋ฑ์ฅํ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ธ๋ฑ์ค๊ฐ ๋ฐ๋ก ์์ด๊ฒ ์ง. ๊ทธ๋ฌ๋ ๋ฌ๊ธ์์ด ๋ช์นธ์ ๊ฑด๋๋ด [2]๋ผ๋ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๋ค๋ฉด? ๊ทธ๊ฑด ์์น๊ฐ ์์ด ์๋๋ผ๋๋ป! ⇒ ์ฆ ๊ทธ๋ฃน๋จ์ด๊ฐ ์๋๋ค! |
๐ญ ๊ทธ๋ ๋ค๋ฉด ๋๋ ์ด๊ฑธ ์ฝ๋๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋ :
1. ๊ธฐ์ค ๋ฌธ์๋ฅผ ํ๋๋ก ๊ณ ์ ํ์ง ๋ง๊ณ ์ํํ๋ฉฐ ์ ํด์ผํ๋ค.
char ch = input.charAt(j)
2. ๊ธฐ์ค ๋ฌธ์๋ฅผ ์ก๊ณ ๊ธฐ์ค๋ฌธ์ ๋ค๋ถํฐ ์ํํ๋ฉฐ ๋น๊ตํ๋ค.
String newInput = input.substring(j+1, input.length());
3. ๊ธฐ์ค ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ๋ฌธ์์ด์์ indexOf๋ฅผ ์ฌ์ฉํด์ index๊ฐ 0๋ณด๋ค ํฌ๋ค๋ฉด,
๊ทธ๋ฃน๋ฌธ์๊ฐ ์๋๋ผ๊ณ ํ๋จํ์ฌ ๋ค์ ๋จ์ด๋ฅผ ํ์ธํ๋ค. (์๊ฐ ๋จ์ถ)
if (newInput.indexOf(ch) > 0) { //๊ทธ๋ฃน์ด ์๋์ง ํ์ธ
isGroup = false;
continue outer;
}
๊ทธ๋ฃน ๋ฌธ์๊ฐ ์๋๋ผ๊ณ ํ๋ฒ ํ๋ณ์ด ๋๋ฉด, ๋ค์ ๋ฌธ์๋ ํ์ธํ ํ์๊ฐ ์์ผ๋ฏ๋ก
์๊ฐ ๋จ์ถ์ ์ํด ๋ฐ์ for๋ฌธ์ผ๋ก ๋น ์ ธ๋๊ฐ๋๋ก outer๋ฅผ ์ฌ์ฉํด๋ณด์๋ค. (์ค๋ฌด์์๋ ์ ์์ด๋ค๊ณ ํ์ง๋ง, )
4. ๊ทธ๋ฃน๋ฌธ์๋ผ๋ฉด count๋ฅผ ์ฌ๋ฆฐ๋ค.
if (isGroup) {count++;}
โ๏ธ ๊ทธ๋ฆฌํ์ฌ ์ต์ข ์ฝ๋
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
outer:
for (int i = 0; i < N; i++) {
String input = br.readLine();
boolean isGroup = true;
// ๋ฌธ์์ด๋งํผ ๋ฐ๋ณต
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
String newInput = input.substring(j+1, input.length());
if (newInput.indexOf(ch) > 0) { //๊ทธ๋ฃน์ด ์๋์ง ํ์ธ
isGroup = false;
continue outer;
}
}
if (isGroup) {
count++;
}
}
System.out.println(count);
}
}