๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€

[๋ฐฑ์ค€/Java] 1157 ๋‹จ์–ด๊ณต๋ถ€ (๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ ์ถœ๋ ฅํ•˜๊ธฐ)

by ๋ฝ€์งœ๊ผฌ 2025. 1. 23.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ 1157 ๋‹จ์–ด๊ณต๋ถ€
(์ž๋ฐ”8 276ms, ์ž๋ฐ”11 392ms)


๋ฐฑ์ค€

 

์ ‘๊ทผ์„ ์ž˜๋ชปํ–ˆ๋Š”์ง€..

๋‚˜๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ์ œ์ผ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์–ด๋ ค์› ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ ์‹œ๊ฐ„๋„ ์ œ์ผ ์ฒ˜์ฐธ..

 

๊ทธ๋ƒฅ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.


โœ๏ธ ๋ฌธ์ œ ํ’€์ด

set์œผ๋กœ ๋ฌธ์ž์—ด์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์„œ

์ด ๋‹จ์–ด๋“ค๋งŒ for๋ฌธ์„ ๋Œ๋ฉด์„œ ๋น„๊ตํ•ด์•ผ๊ฒ ๋‹ค. ์‹ถ์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ช‡๋ฒˆ ๋‚˜์˜ค๋Š”์ง€ countํ•˜๋Š” ๋ฐฐ์—ด ๋งŒ๋“ค์–ด์„œ ๊ฑฐ๊ธฐ ๋‹ด๊ณ ,

์ œ์ผ ํฐ ์ธ๋ฑ์Šค์˜ ๋‹จ์–ด๋งŒ ์ถœ๋ ฅํ•˜๋„๋กํ–ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ๋˜‘๊ฐ™์ด ์ตœ๋Œ“๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š”

์ด๊ฒƒ์„ ์ฒดํฌํ•ด์„œ ?๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

 

๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ•˜๋‹ค.

์ œ์ผ ์œ„๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜จ ๋ฌธ์ž ๊ฒฐ๊ณผ๊ฐ’์ด๊ณ ,

๊ฐ€์šด๋ฐ๊ฐ€ ๋ฌธ์ž๊ฐ€ ๋ช‡๋ฒˆ ๋‚˜์™”๋Š”์ง€ countํ•ด์„œ ๋‹ด์€ ๋ฐฐ์—ด

์ œ์ผ ์•„๋ž˜๊ฐ€ ๊ทธ count๊ฐ’์˜ ๋‹จ์–ด์ด๋‹ค.

 

์‚ฌ์‹ค ์‹œ๊ฐ„ ๋‹จ์ถ•์šฉ์œผ๋กœ set์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

๊ทผ๋ฐ ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ ธ๋‹ค.. ์•„๋ฌด๋ž˜๋„ ์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•˜๋Š”๊ฒŒ ์•„๋‹Œ๋“ฏ ํ•˜๋‹ค..

 

ํŒŒ์ด์ฌ์€ set์œผ๋กœ ์ซ™์ซ™ ํ’€์—ˆ์—ˆ๋Š”๋ฐ,

์ž๋ฐ”๋Š” ๊ฝค ์–ด๋ ต๊ตฌ๋‚˜.. ๋‹ค์‹œ ํ’€์–ด์„œ ์—…๋กœ๋“œ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

์ฉ์ฉ.

 

โœ๏ธ ์ตœ์ข… ์ฝ”๋“œ

import java.io.*;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String upWord = br.readLine().toUpperCase();
        char[] upWordArray = upWord.toCharArray();

        int c = 0;
        // set์œผ๋กœ ๋ฐ”๊พธ๊ณ , ๊ทธ๊ฒƒ๋งŒ ํ™•์ธํ•˜๊ธฐ
        Set<Character> set = new HashSet<>();
        for (Character word : upWordArray) {
            set.add(word);
        }
        Character[] set2Array = set.toArray(new Character[set.size()]);
        // set ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ - set์€ ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ปฌ๋ ‰์…˜์ด๋‹น์šฉ

        int[] counts = new int[set.size()];
        for ( int i = 0; i < set.size(); i++ ) {
            for ( int j = 0; j < upWordArray.length; j++ ) {
                if (upWordArray[j] == set2Array[i]) {
                    counts[i] += 1;
                }
            }
        }

        int max = Integer.MIN_VALUE;
        int index = 0;
        boolean doublemax = false;

        for ( int i = 0; i < counts.length; i++ ) {
            if ( counts[i] > max ) {
                max = counts[i];
                index = i;
                doublemax = false;
            } else if ( counts[i] == max ) {
                doublemax = true;
            }
        }

        if ( doublemax ) {
            System.out.println("?");
        } else {
            System.out.println(set2Array[index]);
        }
    }
}
728x90
๋ฐ˜์‘ํ˜•