https://www.acmicpc.net/problem/2596
์ฒ์์ ํ์ด๊ฐ ์๊ฐ์ด ๋์ง ์์๋ค.. ๊ดํ ๋ณต์กํ๊ฒ String ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์์ด ์ผ์น๋ ๋ฌธ์์ด ์๋ฅด๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์๊ฐ์ ํ๋ค๋ณด๋ ๊ทธ๋ฐ ๊ฒ ๊ฐ๋ค. ๋ธ๋ก ์ฆ ์ฃผ์ ์ ์ํ๋ ค์ ์ง์ฆ์ด ๋ฌ์ง๋ง, ๋จ์ํ๊ฒ ์๊ฐํด์ for๋ฌธ ๋๋ฆฌ๋ฉด์ ํ๋ํ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํ๋ฉด ๋ ์ผ์ด์๋ค!
์ฐ์ ๊ฐ ๋ฌธ์์ ํด๋นํ๋ ์ํธ๋ฌธ๋ค์ String ๋ฐฐ์ด์ผ๋ก ์ ์ฅํ๋ค.
1. ๊ฐ ๋ฌธ์๊ฐ ์ด๋ค ์ํ๋ฒณ ๋ฌธ์์ธ์ง ๋ชจ๋ ๊ฐ๋ฅํ 8๋ฌธ์์ ๋ํด ํ๋จ์ ํ๋ค.
2. ํด๋น ์ํ๋ฒณ์ ์ซ์ ํ๋ํ๋์ ๋น๊ตํด ๊ฐ์ ๋ฌธ์์ธ์ง ํ๋จ์ ํ๋ค.
๋ง์ฝ 2์์ด์ ๋ค๋ฅด๋ฉด(๋ชจ๋ฅด๋ ๋ฌธ์ ์์ผ๋ฉด), ๋ฉ์ถ๊ฐ ๋ค๋ฅธ ์ํ๋ฒณ๊ณผ ๋น๊ตํ๋ค.
๋ง์ฝ ๊ฐ์ ์ํ๋ฒณ์ด๋ฉด ๋ฌธ์๋ฅผ ์ ์ฅํด์ค๋ค. (์ด๋ ์์คํค์ฝ๋๋ฅผ ํ์ฉํด int๋ฅผ char๋ก ๋ณํํด์ค๋ค.)
3. ๊ณ์ ๋น๊ตํ๋ค๊ฐ ๋ชจ๋ฅด๋ ๋ฌธ์ ์์ผ๋ฉด ์์น๋ฅผ ์ ์ฅํด์ฃผ๊ณ , ํ์์ ๋ฉ์ถ๋ค.
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static String[] alphabet = {"000000", "001111", "010011", "011100", "100110", "101001", "110101", "111010"};
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
char[] text = br.readLine().toCharArray();
String result = "";
for(int i = 0; i < N; i++) { //๋ฌธ์์ ๊ฐ์ ๋งํผ ๋ฐ๋ณต
boolean isFind = false;
for(int j = 0; j < 8; j++) { //์ํ๋ฒณ๋งํผ ๋ฐ๋ณต
int count = 0;
for(int k = 0; k < 6; k++) { //์ซ์ ํ๋ํ๋ ๋น๊ต
if(text[i * 6 + k] != alphabet[j].charAt(k)) {
count++;
}
if(count > 1) { //์ซ์ 2์ ์ด์ ๋ค๋ฆ
break;
}
}
if(count < 2) { //๊ฐ์ ๋ฌธ์์ด๋ฉด
isFind = true;
result += (char)(j + 65); //๋ฌธ์ ์ ์ฅ
break;
}
}
if(!isFind) { //๋ชจ๋ฅด๋ ๋ฌธ์ ์์ผ๋ฉด
result = Integer.toString(i + 1); //์์น ์ ์ฅ
break;
}
}
//์ถ๋ ฅ
System.out.println(result);
}
}
๊ฒฐ๊ณผ
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1189๋ฒ - ์ปด๋ฐฑํ (0) | 2022.10.01 |
---|---|
๋ฐฑ์ค 18429๋ฒ - ๊ทผ์์ค (0) | 2022.08.28 |
2960๋ฒ - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2022.08.21 |
๋ฐฑ์ค 17608๋ฒ - ๋ง๋๊ธฐ (0) | 2022.08.21 |
๋ฐฑ์ค 1074๋ฒ - Z (0) | 2022.08.21 |