https://www.acmicpc.net/problem/2596

 

2596๋ฒˆ: ๋น„๋ฐ€ํŽธ์ง€

๋ณ‘ํ˜„์ด๋Š” ์ง€์€์ด์—๊ฒŒ ๋ฌธ์ž A, B, C, D, E, F, G, H ๋กœ ์“ฐ์—ฌ์ง„ ํŽธ์ง€๋ฅผ ๋‚ ๋งˆ๋‹ค ๋ณด๋‚ด๋Š”๋ฐ, ์ปดํ“จํ„ฐ๋กœ ๋ณด๋‚ด๋Š” ๋น„๋ฐ€ํŽธ์ง€๋กœ, ํ•œ ๋ฌธ์ž๋งˆ๋‹ค 0 ๋˜๋Š” 1์ธ ์ˆซ์ž ์—ฌ์„ฏ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‚ธ๋‹ค. ๋‘˜ ์‚ฌ์ด์˜ ์•ฝ์†์€ ๋‹ค์Œ๊ณผ

www.acmicpc.net

 

 

 

 

 

์ฒ˜์Œ์— ํ’€์ด๊ฐ€ ์ƒ๊ฐ์ด ๋‚˜์ง€ ์•Š์•˜๋‹ค.. ๊ดœํžˆ ๋ณต์žกํ•˜๊ฒŒ 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);
	}

}

 

 

 

 

 

๊ฒฐ๊ณผ

giraffe_