๐Ÿ’ฌ SSAFY์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šตํ•  ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ค๋ ฅ ์„ฑ์žฅ์„ ์œ„ํ•ด์„œ๋Š” ๊ตฌํ˜„ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์•„์ง ๊ตฌํ˜„ ์—ญ๋Ÿ‰์ด ๋ถ€์กฑํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.


๐Ÿ“„ ๋ฌธ์ œ

์ง€์€์ด๊ฐ€ ๋ฐ›์€ ํŽธ์ง€๋ฅผ ๋ณด๊ณ  ๋ฌธ์ž๋“ค์„ ์•Œ์•„๋‚ด์–ด ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜, ๋ชจ๋ฅด๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ด๊ฒƒ์ด ์ฒ˜์Œ ๋‚˜์˜ค๋Š” ์œ„์น˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.


๐Ÿ’ก ํ’€์ด ๋ฐฉ๋ฒ•

  • ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ์•”ํ˜ธ ์ฒด๊ณ„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    - code : 6์ž๋ฆฌ์˜ ๋ฌธ์ž
    - key : 6์ž๋ฆฌ ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ์•ŒํŒŒ๋ฒณ

  • ์ง€์€์ด๊ฐ€ ๋ณด๋‚ธ ํŽธ์ง€๋ฅผ 6์ž๋ฆฌ์”ฉ ๋Š์–ด์„œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    - arr : ์ง€์€์ด ํŽธ์ง€ ์† ๋ฌธ์ž

  • ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด if๋ฌธ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

    1. ๋น„๊ต ๋ฌธ์ž์—ด๊ณผ ์™„์ „ํžˆ ๋™์ผํ•œ ๊ฒฝ์šฐ
    2. ๋น„๊ต ๋ฌธ์ž์—ด๊ณผ 1๊ฐœ๋งŒ ๋‹ค๋ฅธ ๊ฒฝ์šฐ
    3. ๋น„๊ต ๋ฌธ์ž์—ด๊ณผ 2๊ฐœ ์ด์ƒ ๋‹ค๋ฅธ ๊ฒฝ์šฐ
  • 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 ์‚ฌ์šฉ๋ฒ•

  • StringBuilder ๋Š” ๊ธฐ์กด์˜ ๋ฌธ์ž์—ด์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  1. StringBuilder sb = new StringBuilder(); ์œผ๋กœ ์„ ์–ธํ•ด ์ค๋‹ˆ๋‹ค.
  2. sb.append(๋ฌธ์ž์—ด); ๋กœ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.
  3. sb.delete(); / sb.setLength(0); ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • sb.delete()ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ, ์‚ญ์ œํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” sb.setLength(0); ์˜ ๋ฐฉ๋ฒ•์ด ์‹œ๊ฐ„ ๋‹จ์ถ•์—๋Š” ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN