1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [D3_4047] ์˜์ค€์ด์˜ ์นด๋“œ ์นด์šดํŒ…

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
        int tc = Integer.parseInt(br.readLine());

        for(int T=1; T<= tc; T++){
            sb.append("#").append(T).append(" ");

            String str = br.readLine();

            // ์นด๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ์ •๋ณด
            boolean[][] check = new boolean[4][14];

            // flag ( error ์ฒดํฌ )
            boolean flag = true;

            for(int i = 0; i<str.length(); i+=3){
                // ์นด๋“œ ๋ฌด๋Šฌ
                char c = str.charAt(i);
                // ์นด๋“œ ์ˆซ์ž
                int num = Integer.parseInt(str.substring(i+1,i+3));

                if(c == 'S'){
                    if(check[0][num]){
                        flag = false;
                        break;
                    }
                    check[0][num] = true;
                }
                else if( c == 'D'){
                    if(check[1][num]){
                        flag = false;
                        break;
                    }
                    check[1][num] = true;
                }
                else if(c == 'H'){
                    if(check[2][num]){
                        flag = false;
                        break;
                    }
                    check[2][num] = true;
                }
                else if(c =='C'){
                    if(check[3][num]){
                        flag = false;
                        break;
                    }
                    check[3][num] = true;
                }
            }

            if(!flag){
                sb.append("ERROR");
            }

            else {
                for (int i = 0; i < 4; i++) {
                    int cnt = 0;
                    for (int j = 0; j < 14; j++) {
                        if (check[i][j]) {
                            cnt++;
                        }
                    }
                    sb.append(13 - cnt).append(" ");
                }
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๋จผ์ € ์นด๋“œ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด์„ boolean์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์˜์ค€์ด๊ฐ€ ์นด๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด true๋ฅผ ์ €์žฅํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž ๋งˆ๋‹ค ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์— ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ํ‘œ์‹œํ•ด์ฃผ๊ณ , ๋‚˜์ค‘์— ํ‘œ์‹œ๋œ ๊ฒƒ๋“ค์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ „์ฒด์ˆ˜์—์„œ ๋นผ์ฃผ๋ฉด ๋ถ€์กฑํ•œ ์นด๋“œ์˜ ์ˆซ์ž๊ฐ€ ๋‚˜์˜จ๋‹ค.
์—ฌ๊ธฐ์„œ flag๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ด์ค€๋‹ค.
์–ด๋–ค ์‹์œผ๋กœ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ๊ณ  ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•˜๋‹ค๋ฉด ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด๋‹ค.