๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

์˜น์•Œ์ด (1) - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ๋จธ์“ฑ์ด๋Š” ํƒœ์–ด๋‚œ ์ง€ 6๊ฐœ์›” ๋œ ์กฐ์นด๋ฅผ ๋Œ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์นด๋Š” ์•„์ง "aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์ตœ๋Œ€ ํ•œ ๋ฒˆ์”ฉ ์‚ฌ์šฉํ•ด ์กฐํ•ฉํ•œ(์ด์–ด ๋ถ™์ธ) ๋ฐœ์Œ๋ฐ–์— ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฐฐ์—ด babbling์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด์˜ ์กฐ์นด๊ฐ€ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • 1 ≤ babbling์˜ ๊ธธ์ด ≤ 100
    • 1 ≤ babbling[i]์˜ ๊ธธ์ด ≤ 15
    • babbling์˜ ์›์†Œ์—์„œ "aya", "ye", "woo", "ma"๋Š” ๊ฐ๊ฐ ์ตœ๋Œ€ ํ•œ ๋ฒˆ์”ฉ๋งŒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no babbling result
1 ["aya", "yee", "u", "maa", "wyeoo"] 1
2 ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3
  1. ["aya", "yee", "u", "maa", "wyeoo"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya"๋ฟ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.
  2. ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"๋กœ 3๊ฐœ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 3์„ returnํ•ฉ๋‹ˆ๋‹ค.
  3. ๋„ค ๊ฐ€์ง€๋ฅผ ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ ์ด์™ธ์—๋Š” ์–ด๋–ค ๋ฐœ์Œ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "woowo"๋Š” "woo"๋Š” ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "wo"๋ฅผ ๋ฐœ์Œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•  ์ˆ˜ ์—†๋Š” ๋ฐœ์Œ์ž…๋‹ˆ๋‹ค.

 

โ€ป ๊ณต์ง€ - 2022๋…„ 10์›” 27์ผ ๋ฌธ์ œ ์ง€๋ฌธ์ด ๋ฆฌ๋‰ด์–ผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์— ์ œ์ถœํ•œ ์ฝ”๋“œ๊ฐ€ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

 

๐Ÿ’› Solution

ํ’€์ด 1

class Solution {
    public int solution(String[] babbling) {
        String[] standard = {"aya", "ye", "woo", "ma"};
        int answer = 0;
        for(int i=0; i<babbling.length; i++) {
            for(int j=0; j<standard.length; j++) {
                while(babbling[i].contains(standard[j])) {
                    babbling[i] = babbling[i].replaceFirst(standard[j], " ");
                    if(babbling[i].trim().length()==0) {
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ Very Bad๐Ÿ˜ฅ

 


 

ํ’€์ด 2

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;

        for(int i =0; i < babbling.length; i++) {
            babbling[i] = babbling[i].replace("aya", " ");
            babbling[i] = babbling[i].replace("woo", " ");
            babbling[i] = babbling[i].replace("ye", " ");
            babbling[i] = babbling[i].replace("ma", " ");
            if(babbling[i].trim().isEmpty()) {
                answer++;
            }
        }


        return answer;
    }
}

 

์ฒ˜๋ฆฌ์†๋„๊ฐ€ ํ›จ์”ฌ ๋‚˜์•„์กŒ๋‹ค.

 


 

๐Ÿ’œ Comment

์ฒ˜์Œ ์ž‘์„ฑํ•œ ํ’€์ด์˜ ๊ฒฝ์šฐ for๋ฌธ ์•ˆ์— while๋ฌธ์„ ๊ฒน์ณ์“ฐ๋ฉด์„œ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ํ˜„์ €ํ•˜๊ฒŒ ๋Š๋ฆฐ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ณ ๋ฏผํ•˜๋‹ค ๋ณด๋‹ˆ, ๊ทธ์ œ์•ผ ๋ฌธ์ œ ์กฐ๊ฑด์ด ๋ˆˆ์— ์ œ๋Œ€๋กœ ๋“ค์–ด์™”๋‹ค.

"aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์ตœ๋Œ€ ํ•œ ๋ฒˆ์”ฉ ์‚ฌ์šฉ

 

๊ทธ๋ ‡๋‹ค.. ์ฒ˜์Œ๋ถ€ํ„ฐ while๋ฌธ์„ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์—ˆ๋‹ค.
์–ด์ฐจํ”ผ "aya", "ye", "woo", "ma" ์ด ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ babbling[i].replace("๋ฐœ์Œ๊ฐ€๋Šฅํ•œ๊ฒƒ๋“ค", " ");์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ์ด๋‹ค.

๊ดœํžˆ ์–ด๋ ต๊ฒŒ ๊ผฌ์•„์„œ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ ์ฝ”๋“œ๋งŒ ๋ณต์žกํ•ด์กŒ๋‹ค. ๊ทผ๋ฐ ๋˜ ๊ผฌ์•„์„œ ์ƒ๊ฐํ–ˆ๋‹ค๊ธฐ์—๋Š”.. while๋ฌธ ์•ˆ์— babbling[i].replaceFirst(); ์ด๊ฑธ ์™œ ์ ์—ˆ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐ€์งˆ ์•Š๋Š”๋‹ค๐Ÿ˜… ์•ž๋’ค๊ฐ€ ์•ˆ ๋งž๋Š” ์ฝ”๋“œ๊ฐ€ ๋”ฐ๋กœ ์—†๋‹ค.

์ฐธ, ์ฒ˜์Œ์—๋Š” babbling[i].replaceFirst("๋ฐœ์Œ๊ฐ€๋Šฅํ•œ๊ฒƒ๋“ค", "");๋กœ ์ฒ˜๋ฆฌํ–ˆ๋Š”๋ฐ, ํ•ด๋‹น ๋ฐœ์Œ์ด ์‚ฌ๋ผ์ง€๋ฉด์„œ ๋ฐ”๋กœ ์•ž ๋‹จ์–ด๊ฐ€ ํ•ด๋‹น ๋ฐœ์Œ์˜ ๋’ค์— ์žˆ๋˜ ๋‹จ์–ด์™€ ๋ถ™์—ฌ์“ฐ๊ธฐ๊ฐ€ ๋˜๋ฉด์„œ ์›๋ž˜ ํ•ด๋‹น์ด ์•ˆ๋˜๋˜ ๋ฐœ์Œ์ด ๋งˆ์น˜ ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
("wyeoo" ๐Ÿ‘‰ ye์ œ๊ฑฐ+๊ณต๋ฐฑ์—†์Œ ๐Ÿ‘‰ woo ๐Ÿ‘‰ woo๋กœ ์ธ์‹๋˜์–ด ์ œ๊ฑฐ ๐Ÿ‘‰ isEmpty() ์‚ฌ์šฉ ์‹œ true๊ฐ’ ๋ฐ˜ํ™˜)

๊ทธ๋ž˜์„œ babbling[i].replace("๋ฐœ์Œ๊ฐ€๋Šฅํ•œ๊ฒƒ๋“ค", " ");์ฒ˜๋Ÿผ ๊ณต๋ฐฑ์„ ์ง‘์–ด๋„ฃ์€ ๋’ค ๋งˆ์ง€๋ง‰์— ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•ด์ฃผ๋Š” babbling[i].trim();์„ ์‚ฌ์šฉํ•˜๊ณ  isEmpty();๋กœ ๊ฒ€์‚ฌํ•˜์˜€๋‹ค.

๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ๋งŒ ๋”ฐ์ ธ๋ดค์œผ๋ฉด ์ข€ ๋” ์„ฑ๋Šฅ์ด ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์„ ํ…๋ฐ ๊ทธ ์ ์ด ์•„์‰ฝ๋‹ค.

 

11814์œ„โœจ

 

 

 

๋Œ“๊ธ€