Tags
- ๋ฐฑํธ๋ํน
- queue
- Java
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ์ด๋ก
- ๋๋น ์ฐ์ ํ์
- ๊ตฌํ
- ๊ทธ๋ํ ํ์
- BFS
- Dynamic Programming
- ์๋ฎฌ๋ ์ด์
- ์๋ฃ๊ตฌ์กฐ
- DP
- LV2
- Python
- BOJ
- greedy
- stack
- Brute Force Algorithm
- ๋ฌธ์์ด
- dfs
- sort
- ์ ๋ ฌ
- ์ํ
- ๊ต์ฌ
- Study
- CodingTest
- ์ ์๋ก
- PGM
- SpringBoot
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1411 : ๋น์ทํ ๋จ์ด ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n๊ฐ์ ๋ฌธ์์ด์์ ์๋ก ๋น์ทํ ์์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- ๋น์ทํ๋ค๋ ์๋ฏธ๋ ๋ฌธ์์ด์ ๋ฌธ์๊ฐ ๊ฐ์ ๋ฐฉ์์ผ๋ก๋ง ๋ณํ ๋ ์ํ์ด๋ค.
- ๋ค๋ฅธ ๋ ๋ฌธ์๊ฐ ํ๋์ ๋ฌธ์๋ก ์ค๋ณต๋์ด ๋ณํ๋์ง ๋ชปํ๋ค.
- ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํด๋ณด์
- n๊ฐ์ ๋ฌธ์์ด์ด ๊ฐ์ ์ ์๋ ๋ชจ๋ ์์ ๊ณ์ฐํ๋ฏ๋ก ์ ํ์ ๋ ฌ๊ณผ ๊ฐ๋ค. O(n^2)
- ๊ทธ ์์์ ๋ฌธ์์ด์ ํ๋์ฉ ๊ฒ์ฌํด์ผํ๋ค. O(m)
- ๋ฐ๋ผ์ ์๊ฐ ๋ณต์ก๋๋ O(n^2 * m)
- ๊ณ์ฐํ๋ฉด 100*100*50 == 500,000(50๋ง) ์ด๋ฏ๋ก, ์๊ฐ์ ์ผ๋ก๋ ์ฌ์ ์๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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());
String arr[] = new String[n];
for (int i = 0; i < n; i++)
arr[i] = br.readLine();
int answer = 0;
for (int i = 0; i < n-1; i++){
for (int j = i+1; j < n; j++){
int chr[] = new int[27];
int rev[] = new int[27];
boolean flag = true;
for (int k = 0; k < arr[i].length(); k++) {
int idx = arr[i].charAt(k) - 'a' + 1;
int temp = arr[j].charAt(k) - 'a' + 1;
if (chr[idx] == 0 && rev[temp] == 0) {
chr[idx] = temp;
rev[temp] = idx;
}
else if (chr[idx] != temp || rev[temp] != idx){
flag = false;
break;
}
}
if (flag) answer++;
}
}
System.out.println(answer);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n๊ฐ์ ๋ฌธ์์ด์ ๋ฐฐ์ด arr์ ์ ์ฅํ๋ค.
- n๊ฐ์ ๋ฌธ์์ด์ ์ํํ๋ฉฐ ์์ ๊ฒ์ฌํ๋ค.
- chr[ ] : ๋ฌธ์ ํ๋๋ฅผ ์ธ๋ฑ์ค๋ก ๋ณํ(a == 1)ํด์, ๋ณํํ์๋ ์ด๋ค ๋ฌธ์์ธ์ง ๊ฐ๋ฆฌํจ๋ค.
- rev[ ] : chr[ ]์ ๊ฐ์ด rev[ ]์ ์ธ๋ฑ์ค์ด๋ค. ํ ๋ฌธ์๋ฅผ ์ฌ๋ฌ ๋ฌธ์๊ฐ ๊ฐ๋ฆฌํฌ ์ ์๊ฒ ํ๋ค.
- idx ๋ ๊ธฐ์ค ๋ฌธ์์ด ์ค ํ ๋ฌธ์์ ์ธ๋ฑ์ค, temp๋ ๋น๊ตํ ๋ฌธ์์ด ์ค ํ ๋ฌธ์์ ์ธ๋ฑ์ค
- chr[idx] == 0์ด๋ฉด ์์ง ์๋์จ ๋ฌธ์์ด๊ณ , rev[temp] == 0 ์ด๋ฉด ๋ค๋ฅธ ๋ฌธ์๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฐ๋ ์๋๋ค.
- ์๋ก ๊ฐ๋ฆฌํค๊ฒ ๊ฐ์ ๋ฃ๋๋ค.
- 0์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด, ์ค๋ฅ์ด๊ฑฐ๋ ๋ณํ ๊ฐ์ด ์ค๋ณต์ด๋ฏ๋ก ๋น์ทํ ๋ฌธ์๊ฐ ์๋๋ค.
- chr[idx] == 0์ด๋ฉด ์์ง ์๋์จ ๋ฌธ์์ด๊ณ , rev[temp] == 0 ์ด๋ฉด ๋ค๋ฅธ ๋ฌธ์๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฐ๋ ์๋๋ค.
- ๋น์ทํ ๋ฌธ์์ ์๋ฅผ ์ผ๋ค.
- ๋น์ทํ ๋ฌธ์์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- chr[ ]์ rev[ ]๋ฅผ ๋๋์ง ์๊ณ , ํ๋์ ๋ฐฐ์ด์์ ์๋ก ๊ฐ๋ฆฌํค๊ฐ ๋ง๋ค์ด์ ๋ ผ๋ฆฌ์ ์ค๋ฅ๊ฐ ์๊ฒจ ํ์ด๊ฐ ์ค๋๊ฑธ๋ ธ๋ค.
- ์์ ์ ๋ชปํ์๋ ๋ฌธ์ ๋ฅผ ๋ค์ ํธ๋๋ฐ ์ด๋ ค์ด ๊ฑด ์๋๋ฐ๋ ์๊ฐ๋ณด๋ค ํท๊น๋ฆฌ๋ ๋ถ๋ถ์ด ๋ง์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_6996 : ์ ๋๊ทธ๋จ (0) | 2022.10.24 |
---|---|
BOJ_10989 : ์ ์ ๋ ฌํ๊ธฐ 3 (0) | 2022.10.23 |
BOJ_1049 : ๊ธฐํ์ค (0) | 2022.10.19 |
BOJ_1015 : ์์ด ์ ๋ ฌ (0) | 2022.10.19 |
BOJ_1402 : ์๋ฌด๋๋์ด๋ฌธ์ ๋A๋ฒ๋์ด๋์ธ๊ฒ๊ฐ๋ค (0) | 2022.10.19 |