์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ๋ฌธ์ž์—ด ์••์ถ•

2023. 10. 8. 00:09ใ†์ธํ”„๋Ÿฐ/์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„

728x90

 

https://hyejin.tistory.com/1206

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ๊ฐ€์žฅ ์งง์€ ๋ฌธ์ž ๊ฑฐ๋ฆฌ

https://hyejin.tistory.com/1205 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ์ˆซ์ž๋งŒ ์ถ”์ถœ https://hyejin.tistory.com/1204 -> ์ด์ „ ๋ฌธ์ œ ํ’€์ด 9. ์ˆซ์ž๋งŒ ์ถ”์ถœ ์„ค๋ช… ๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด

hyejin.tistory.com

-> ์ด์ „ ๋ฌธ์ œ ํ’€์ด 

 

 

 

11.  ๋ฌธ์ž์—ด ์••์ถ• 

 

์„ค๋ช…

์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋˜๋Š”

๋ฌธ์ž ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ์— ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋‹จ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ฒซ ์ค„์— ์••์ถ•๋œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์‹œ ์ž…๋ ฅ 1 

KKHSSSSSSSE

 

์˜ˆ์‹œ ์ถœ๋ ฅ 1

K2HS7E

 

์˜ˆ์‹œ ์ž…๋ ฅ 2 

KSTTTSEEKFKKKDJJGG

 

์˜ˆ์‹œ ์ถœ๋ ฅ 2

KST3SE2KFK3DJ2G2

 

 

 

๋ฌธ์ œ ํ’€์ด 1

public String solution(String input) {
    String answer = "";
    char[] chars = input.toCharArray();
    int sum = 0;

    for (int i = 0; i < chars.length; i++) {
        for (int j = i; j < chars.length; j++) {
            if (chars[i] == chars[j]) {
                sum++;
            } else {
                break;
            }
        }
        answer += chars[i];
        if (sum != 1) {
            answer += sum;
        }
        i = i + sum - 1 ;
        sum = 0;
    }

    return answer;
}

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป : ๋ญ”๊ฐ€.. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋จธ๋ฆฌ๊ฐ€ ๋Œ์ด ๋๋Š”์ง€.. ๋จธ๋ฆฌ๊ฐ€ ์•ˆ๋Œ์•„๊ฐ€์„œ ๊ทธ๋ƒฅ ์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ ํ’€๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€.. ์ด๋ชจ์–‘์ด ๋๋‹ค.. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ์•ˆํ•œ ํ‹ฐ ๋‚œ๋‹ค ใ…œ ๋ณ€๋ช…์ž…๋‹ˆ๋‹ค.. ๊ณต๋ถ€ํ•˜๊ฒ ์Œ.. 

 

์šฐ์„  ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ค‘๋ณต๋˜๋ฉด ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๋งŒ ๋ƒ…๋‘๊ณ  ๊ทธ ๊ฐฏ์ˆ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. 

๋‚˜๋Š” ๊ทธ๋ž˜์„œ ์ด์ค‘ for ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ chars์˜ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด์ฃผ๋Š”๋ฐ ์ด๋•Œ ๋‘๋ฒˆ์งธ for๋ฌธ์€ j๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ i ๊ฐ’ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ํ–ˆ๋‹ค. 

chars[i]์™€ chars[j] ๊ฐ€ ๊ฐ™์œผ๋ฉด sum์— +1 ํ•ด์ฃผ๊ณ  ์•„๋‹ˆ๋ฉด ๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์„ ๋‚˜์˜ค๋„๋ก ํ–ˆ๋‹ค. 

 

๊ทธ ๋‹ค์Œ answer ์— chars[i] ๋ฌธ์ž๋ฅผ ๋จผ์ € ๋ˆ„์ ํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ sum์ด 1์ด ์•„๋‹ˆ๋ฉด sum ๊ฐ’๋„ answer์— ๋”ํ•ด์ฃผ๊ฒŒ ํ–ˆ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ sum ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์ „์— i ์˜ ๊ฐ’์„ ์ค‘๋ณต ๋ฌธ์ž์—ด์„ ๋„˜์–ด ์ด๋™ํ•˜๋„๋ก sum -1 ํ•ด์คฌ๋‹ค. 

๊ทธ ๋‹ค์Œ sum ์„ ๋‹ค์‹œ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ๋‹ค. 

 

(์ด์ค‘ for ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ํ•ด๋‹น ๋ฌธ์ž์™€ ๋‹ค์Œ ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ์˜€๋‹ค..ใ…Ž) 

 

 

 

๋ฌธ์ œ ํ’€์ด 2

public String solution2(String input) {
    String answer = "";
    input += " ";
    int cnt = 1;
    for (int i = 0; i < input.length() - 1; i++) {
        if (input.charAt(i) == input.charAt(i + 1)) {
            cnt++;
        } else {
            answer += input.charAt(i);
            if (cnt > 1) {
                answer += cnt;
            }
            cnt = 1;
        }
    }

    return answer;
}

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์€ ๋‚˜์˜ ์ด ๋‹ต๋‹ตํ•œ ๋งˆ์Œ์„ ๋ปฅ ๋šซ์–ด์ฃผ์…จ๋‹ค... ํ•˜ 

๊ทธ๋ƒฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•  ๋•Œ i ์™€ i+1 ์„ ๋น„๊ตํ•ด์„œ ๊ฐ™์œผ๋ฉด cnt ์˜ ๊ฐ’์„ +1  ํ•ด์ฃผ๊ณ , ๋‹ค๋ฅด๋ฉด answer์— ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ๋”ํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ cnt ์˜ ๊ฐ’์ด 1๋ณด๋‹ค ํฌ๋ฉด answer์— cnt ๊ฐ’๋„ ๋”ํ•ด์ฃผ๊ฒŒ ํ–ˆ๋‹ค. ๊ทธ ๋‹ค์Œ cnt ๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. 

๊ทผ๋ฐ ์ด๋•Œ ๋งจ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ํ•  ๋•Œ๋Š” i +1 ๊ฐ’์„ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•˜๋ฉด index๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์• ์ดˆ์— input ์— ๋นˆ ๋ฌธ์ž์—ด์„ ๋”ํ•ด์ค˜์„œ ๊ทธ ๋‹ค์Œ ๋ฌธ์ž์—ด์„ ๋น„๊ต๋Š” ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ๊ทธ ๋‹ค์Œ for๋ฌธ์— ์กฐ๊ฑด์‹์œผ๋กœ i < input.length() ๊ฐ€ ์•„๋‹ˆ๋ผ   i < input.length()-1 ์„ ํ•˜๋„๋ก ํ•˜๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” ๋นˆ ๋ฌธ์ž์—ด๊นŒ์ง€ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๋ฌธ์ž์—ด์„ ์ œ์™ธํ•œ input ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

 

 

 

 

 

 

 

728x90