ํ•ด๋ฒ„๋‹ˆ 2023. 11. 18. 16:29
๋ฐ˜์‘ํ˜•

 

 

 

๋ฌธ์ œ 

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

 

9046๋ฒˆ: ๋ณตํ˜ธํ™”

์ž…๋ ฅ์˜ T(1 โ‰ค T โ‰ค 20)๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ, ์ž…๋ ฅ ์ œ์ผ ์ƒ๋‹จ์— ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋งˆ๋‹ค ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋ฌธ์žฅ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์žฅ์˜ ๊ธธ์ด๋Š” ์ ์–ด๋„ 1์ด์ƒ์ด

www.acmicpc.net

 

 

 

 

 

 

 

 

 

 

 

 

 

ํ’€์ด

 

์˜์–ด ์•ŒํŒŒ๋ฒณ์€ ์ด 26๊ฐœ์ด๋ฏ€๋กœ 26๊ฐœ์˜ ๋ฐฐ์—ด์„ ์„ ์–ธํ•ด์ค€๋‹ค.

String์„ ํ•œ ๊ธ€์ž์”ฉ ์ž˜๋ผ์„œ (int) input.charAt(i)๋กœ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

a๋Š” 97, b๋Š” 98, c๋Š” 99 .... ์ด๋ฏ€๋กœ 

(์ˆซ์ž๋กœ ๋ณ€ํ™˜) - 97์„ ํ•ด์„œ ๋ฐฐ์—ด์— index 0๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ +1์„ ํ•ด์ค€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ๋Š” ์ตœ๋Œ“๊ฐ’์ด ํ•˜๋‚˜์ธ์ง€ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

ํ•˜๋‚˜์ด๋ฉด ๊ทธ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ?์„ ์ถœ๋ ฅํ•œ๋‹ค.  

 

package algorithm;

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

public class Main {
    // ํ•ด๋…ํ•˜๋Š” ํ•จ์ˆ˜
    public char decode(String input) {
        int[] number = new int[26]; // ์˜์–ด ์•ŒํŒŒ๋ฒณ์€ 26๊ฐœ

        for (int i = 0; i < input.length(); i++) {
            char search = input.charAt(i);

            if ((int) search != 32) { // ์•„์Šคํ‚ค์ฝ”๋“œ๋Š” a=97 ์ด๋ฏ€๋กœ 97๋ฅผ ๋นผ์„œ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ์‹œํ‚จ๋‹ค.
                number[((int) search) - 97]++;
            }
        }

        int check = 0;
        int max = 0;
        int index = -1;

        for (int i = 0; i < number.length; i++) { // ์ตœ๋Œ“๊ฐ’๊ณผ ๊ทธ๋•Œ์˜ index๋ฅผ ๊ตฌํ•˜๊ธฐ
            if (max < number[i]) {
                max = number[i];
                index = i;
            }
        }

        for (int i = 0; i < number.length; i++) { // ๋งŒ์•ฝ ์ตœ๋Œ“๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด check++๋ฅผ ํ•ด์ฃผ๊ธฐ
            if (max == number[i]) {
                check++;
            }
        }

        // check=1์ด๋ฉด max๊ฐ€ 1, ์•„๋‹ˆ๋ผ๋ฉด 2 ์ด์ƒ์ด๋‹ค.
        return check > 1 ? '?' : (char) (index + 97);
    }



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

        int num = Integer.parseInt(br.readLine());
        char[] answer = new char[num];
        Main m = new Main();

        for (int i = 0; i < answer.length; i++) {
            String input = br.readLine();
            answer[i] = m.decode(input);
        }

        for (int i = 0; i < answer.length; i++) {
            System.out.println(answer[i]);
        }

    }
}

 

 

 

 

 

 

 

 

์ •๋‹ต 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•