๐ฌ SSAFY์์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ ๋ ์๊ณ ๋ฆฌ์ฆ ์ค๋ ฅ ์ฑ์ฅ์ ์ํด์๋ ๊ตฌํ ๋ฅ๋ ฅ์ด ํ์ํ๋ค๊ณ ๋ค์์ต๋๋ค. ์ ๋ ์์ง ๊ตฌํ ์ญ๋์ด ๋ถ์กฑํ ๊ฒ ๊ฐ์ต๋๋ค.
์ง์์ด๊ฐ ๋ฐ์ ํธ์ง๋ฅผ ๋ณด๊ณ ๋ฌธ์๋ค์ ์์๋ด์ด ์ถ๋ ฅํ๊ฑฐ๋, ๋ชจ๋ฅด๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ, ์ด๊ฒ์ด ์ฒ์ ๋์ค๋ ์์น๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ฌธ์ ์ ์ฃผ์ด์ง ์ํธ ์ฒด๊ณ๋ฅผ ์ ์ฅํฉ๋๋ค.
- code : 6์๋ฆฌ์ ๋ฌธ์
- key : 6์๋ฆฌ ๋ฌธ์์ ํด๋นํ๋ ์ํ๋ฒณ
์ง์์ด๊ฐ ๋ณด๋ธ ํธ์ง๋ฅผ 6์๋ฆฌ์ฉ ๋์ด์ ์ ์ฅํฉ๋๋ค.
- arr : ์ง์์ด ํธ์ง ์ ๋ฌธ์
๋์ฌ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด if๋ฌธ์ ์์ฑํ์ต๋๋ค.
1,2๋ฒ์ ํด๋นํ๋ ๊ฒฝ์ฐ๋ StringBuilder
๋ฅผ ์ฌ์ฉํด ์ ์ฅํด์ฃผ์์ต๋๋ค.
3๋ฒ์ ํด๋นํ๋ ๊ฒฝ์ฐ๋ StringBuilder
์ ๊ธธ์ด๋ฅผ 0์ผ๋ก ์ค์ ํ์ฌ ์ด๊ธฐํํด์ฃผ์์ต๋๋ค.
๋น๊ต๊ฐ ๋๋ ๋ค ์ ์ฅ๋ ๊ฐ์ StringBuilder.toString()
์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.StringTokenizer;
public class ๋น๋ฐํธ์ง {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
String arr[] = new String[n];
String str = br.readLine();
String code[] = {"000000", "001111", "010011", "011100", "100110", "101001", "110101", "111010"};
String key[] = {"A", "B", "C", "D", "E", "F", "G", "H"};
// ๋น๋ฐ ํธ์ง๋ฅผ 6๊ฐ์ฉ ๋์ด์ ์ ์ฅ
for(int i = 0; i < str.length(); i+=6) {
if(i+6 > str.length()) break;
arr[i/6] = str.substring(i, i+6);
}
// ์ฝ๋ ๋ณตํธํ
for(int i = 0; i < n; i++) {
boolean flag = true;
for(int j = 0; j < code.length; j++) {
// ๋ฌธ์์ด์ด ์์ ํ ๊ฐ์ ๋
if(code[j].equals(arr[i])) {
// ์ํ๋ฒณ์ ์ถ๊ฐํ๊ณ ๋๊ฐ๋ค.
sb.append(key[j]);
flag = true;
break;
}
// ๋ฌธ์์ด์ด ๋ถ๋ถ์ผ๋ก ๊ฐ์ ๋
else {
int cnt = 0;
for(int z = 0; z < 6; z++) {
if(code[j].charAt(z) != arr[i].charAt(z)) {
// ํ๋ ์ด์ ๋ค๋ฅผ ๊ฒฝ์ฐ
if(cnt >= 1) {
// flag ๊ฐ์ false๋ก ๋ง๋ ๋ค.
flag = false;
break;
}
// ๋ค๋ฅธ ๋ฌธ์์ด์ด ์กด์ฌํ๋ฉด ์นด์ดํธ ํด์ค๋ค.
cnt++;
}
// ๊ฐ์ผ๋ฉด flag ๊ฐ์ true๋ก ๋ง๋ ๋ค.
else {
flag = true;
}
}
// ๋ฌธ์์ด์ ํ๋์ฉ ๋น๊ตํ์ ๋, 1๊ฐ ๋นผ๊ณ ๊ฐ์ผ๋ฉด ๊ฐ์ ์ฝ๋๋ก ๊ด์ฃผํ๋ค.
if(flag) {
sb.append(key[j]);
break;
}
}
}
// ๋ฌธ์์ด์ด ๋ค๋ฅด๋ค๊ณ ํ๋จ, ์ ์ฅํ ์ฝ๋๋ฅผ ์ด๊ธฐํ ํ๊ณ ์ต์ด ๋ค๋ฅธ ๋ถ๋ถ์ ์์๋ฅผ ์ถ๋ ฅํ๋ค.
if(!flag) {
sb.setLength(0);
System.out.println(i+1);
break;
}
}
// ์ ๋ต ์ถ๋ ฅ
System.out.println(sb.toString());
}
}
StringBuilder sb = new StringBuilder();
์ผ๋ก ์ ์ธํด ์ค๋๋ค.sb.append(๋ฌธ์์ด);
๋ก ๋ฌธ์์ด์ ์ถ๊ฐํด์ค๋๋ค.sb.delete();
/sb.setLength(0);
๋ก ์ด๊ธฐํํ ์ ์์ต๋๋ค.