ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • algorithm
    ๐Ÿ’ป ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ฝ”๋“œ ์ฒ˜๋ฆฌํ•˜๊ธฐ
    2023. 9. 18. 10:50
    728x90

    ๐Ÿ“• ๋ฌธ์ œ ์„ค๋ช…

    ๋ฌธ์ž์—ด code๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
    code๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด์„œ ๋งŒ์•ฝ ๋ฌธ์ž๊ฐ€ "1"์ด๋ฉด mode๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. mode์— ๋”ฐ๋ผ code๋ฅผ ์ฝ์–ด๊ฐ€๋ฉด์„œ ๋ฌธ์ž์—ด ret์„ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

     

    mode๋Š” 0๊ณผ 1์ด ์žˆ์œผ๋ฉฐ, idx๋ฅผ 0 ๋ถ€ํ„ฐ code์˜ ๊ธธ์ด - 1 ๊นŒ์ง€ 1์”ฉ ํ‚ค์›Œ๋‚˜๊ฐ€๋ฉด์„œ code[idx]์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ–‰๋™ํ•ฉ๋‹ˆ๋‹ค.

     

    mode๊ฐ€ 0์ผ ๋•Œ code[idx]๊ฐ€ "1"์ด ์•„๋‹ˆ๋ฉด idx๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ๋งŒ ret์˜ ๋งจ ๋’ค์— code[idx]๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    code[idx]๊ฐ€ "1"์ด๋ฉด mode๋ฅผ 0์—์„œ 1๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.


    mode๊ฐ€ 1์ผ ๋•Œ
    code[idx]๊ฐ€ "1"์ด ์•„๋‹ˆ๋ฉด idx๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ๋งŒ ret์˜ ๋งจ ๋’ค์— code[idx]๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    code[idx]๊ฐ€ "1"์ด๋ฉด mode๋ฅผ 1์—์„œ 0์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.


    ๋ฌธ์ž์—ด code๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ฌธ์ž์—ด ret๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

    ๋‹จ, ์‹œ์ž‘ํ•  ๋•Œ mode๋Š” 0์ด๋ฉฐ, return ํ•˜๋ ค๋Š” ret๊ฐ€ ๋งŒ์•ฝ ๋นˆ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด ๋Œ€์‹  "EMPTY"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

     

    ๐Ÿ“• ์ œํ•œ ์‚ฌํ•ญ

    • 1 ≤ code์˜ ๊ธธ์ด ≤ 100,000
      • code๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ๋˜๋Š” "1"๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

     

    ๐Ÿ“ ๋‹ต์•ˆ

    class Solution {
        public String solution(String code) {
            String answer = "";
            int mode = 0;
    
            String [] str = code.split("");
            for(int i=0; i<str.length; i++) {
                if(str[i].equals("1")) {
                    mode = mode == 1? 0:1;
                    continue;
                }
                if(mode==0&&i%2==0) {
                    answer += str[i];
                }else if(mode==1&&i%2==1) {
                    answer += str[i];
                }
            }
    
            return answer.length()>0?answer:"EMPTY";
    
        }
    }

    ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•œ ๊ธ€์ž์”ฉ ์ฝ์œผ๋ฉด์„œ ํ™•์ธํ•˜๋ ค๋ฉด split()์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ charAt()์„ ์ด์šฉํ•ด์„œ ํ•œ๊ธ€์ž์”ฉ ๋–ผ์–ด๊ฐ€๋ฉด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ๋‚˜๋Š” split()์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด for๋ฌธ์„ ๋Œ๋ ธ๋‹ค. for๋ฌธ์„ ๋Œ๋ฉด์„œ ๋ฌธ์ž์—ด์ด 1๊ณผ ๊ฐ™๋‹ค๋ฉด mode๋ฅผ 0๋˜๋Š” 1๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•˜๋Š”๋ฐ if๋ฌธ์„ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด์„œ ์ข€ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ–ˆ๋‹ค.

     

    ๊ทธ๋ฆฌ๊ณ  mode๊ฐ€ 0์ด๋ฉด์„œ ์ธ๋ฑ์Šค๊ฐ€ ์ง์ˆ˜์ด๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€๋กœ mode๊ฐ€ 1์ด๋ฉด์„œ ์ธ๋ฑ์Šค๊ฐ€ ํ™€์ˆ˜์ธ๊ฒฝ์šฐ answer์— ๊ธ€์ž๋ฅผ ๋”ํ•ด์ค€๋‹ค. return ํ•  ๋•Œ๋„ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ answer์˜ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด answer ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•˜๊ณ  ๊ธธ์ด๊ฐ€ 0๋ณด๋‹ค ์ž‘๋‹ค, ์ฆ‰ answer์— ์ €์žฅ๋œ ๋ฌธ์ž์—ด์ด ์—†๋‹ค๋ฉด EMPTY๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

     

    ๐Ÿ’ก ์ฐธ๊ณ 

    • ๋ฐฐ์—ด.length : ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฆฌํ„ด
    • ๋ฌธ์ž์—ด.length() : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฆฌํ„ด
    • ๋ฌธ์ž์—ด.split(๊ตฌ๋ถ„์ž) : ๊ตฌ๋ถ„์ž๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ์ž˜๋ผ๋‚ด์„œ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜, ๊ตฌ๋ถ„์ž๊ฐ€ ์—†๋‹ค๋ฉด ํ•œ๊ธ€์ž์”ฉ ๋Š์–ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
    728x90
Designed by Tistory.