๋šœ๋ถ€๋‹ˆ์˜ Devlog

[BOJ] 5052.์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (Java)

by ๋šœ๋ถ€๋‹ˆ

 

 

5052๋ฒˆ: ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ t ≤ 50) ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n ≤ 10000) ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€

www.acmicpc.net

 

์ด ๋ฌธ์ œ๋Š” ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ ,

ํ•˜๋‚˜๋ผ๋„ ์ ‘๋‘์–ด๋กœ ์‚ฌ์šฉ๋œ ๊ฒฝ์šฐ NO๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ YES๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

์ž…๋ ฅ๋ฐ›์€ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ •๋ ฌํ•œ ํ›„

ํ˜„์žฌ ์œ„์น˜์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค์Œ ์œ„์น˜์˜ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด๋กœ ์†ํ•˜๋Š”์ง€ startWith()์„ ํ†ตํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, ๋‘ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์—†์œผ๋ฏ€๋กœ ๋‘ ๋ฒˆํ˜ธ์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

import java.io.*;
import java.util.Arrays;

class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

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

        for (int i = 0; i < t; i++) {
            int n = Integer.parseInt(br.readLine()); // ์ „ํ™”๋ฒˆํ˜ธ ์ˆ˜
            String[] phoneNumber = new String[n]; // ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด

            // ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ์ƒ์„ฑ
            for (int j = 0; j < n; j++) {
                phoneNumber[j] = br.readLine();
            }

            Arrays.sort(phoneNumber);

            if (isStart(n, phoneNumber)) {
                System.out.println("YES");
            }
            else {
                System.out.println("NO");
            }

        }

        br.close();

    }

    /** isStart
     *
     * @param n ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก ์ˆ˜
     * @param phoneNumber ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก
     * @return ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ boolean ๊ฐ’
     */
    public static boolean isStart(int n, String[] phoneNumber) {

        for (int k = 0; k < n - 1; k++) {
            if (phoneNumber[k].length() == phoneNumber[k+1].length()) // ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋น„๊ตํ•  ํ•„์š” X
                continue;
            if (phoneNumber[k+1].startsWith(phoneNumber[k])) { // ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜
                return false;
            }
        }

        return true; // ์ ‘๋‘์–ด๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ true ๋ฐ˜ํ™˜

    }

}

'Algorithm > BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] 1043.๊ฑฐ์ง“๋ง (Java)  (0) 2021.04.30
[BOJ] 5430.AC (Java)  (0) 2021.04.30
[BOJ] 11720.์ˆซ์ž์˜ ํ•ฉ (Java)  (0) 2021.04.27
[BOJ] 15685.๋“œ๋ž˜๊ณค์ปค๋ธŒ (Python)  (0) 2021.04.23
[BOJ] 17406.๋ฐฐ์—ด๋Œ๋ฆฌ๊ธฐ4  (0) 2021.04.22

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ