Dev-Kyuu
article thumbnail

- ๋ฌธ์ œ :

  • ์ž์—ฐ์ˆ˜n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•˜๊ธฐ
  • 54321์ด๋ฉด [1,2,3,4,5]๋กœ ๋ฆฌํ„ดํ•ด์•ผํ•จ
public class proPrac7 {
    public static void main(String[] args){
        long num = 123 ;
        // ๋’ค์ง‘์–ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•จ
        String nStr = ""+num;
        // ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜๋ฅผ String์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ
        // ๋ฌธ์ž์—ด + ์ •์ˆ˜ํ˜•๋ณ€์ˆ˜๋ฅผ ๋”ํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ!

        StringBuffer tp = new StringBuffer(nStr);
        String reverse = tp.reverse().toString();
        //๋ฌธ์ž์—ด์„ ๋’ค์ง‘๊ธฐ ์œ„ํ•ด์„œ StringBuffer ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
        //StringBuffer ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ›„์— ์ œ๊ณต๋˜๋Š” reverse() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋’ค์ง‘๋Š”๋‹ค.

        char[] rChar = reverse.toCharArray();
        // ๋’ค์ง‘์€ ๋ฌธ์ž์—ด์„ ํ•œ๊ธ€์ž ํ•œ๊ธ€์ž ๋ฐฐ์—ด์— ๋„ฃ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— char ๋ฌธ์žํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
        int[] answer = new int[rChar.length];
        // char๋ฐฐ์—ด์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ intํ˜• ๋ณ€์ˆ˜์— ๋„ฃ์–ด์„œ ๋ฆฌํ„ดํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— char ๋ฐฐ์—ด size ํฌ๊ธฐ์˜ int ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

        // char๋ฅผ int๋กœ ๋ฐ”๊ฟ”์„œ ๋‹ค์‹œ ์ถœ๋ ฅํ•จ Character์˜ getNumericValue(char ch) ์ด์šฉ
        int i=0; // ์ธ๋ฑ์Šค์šฉ
        for(char c : rChar){
            // rchar์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋‹ค ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต
            answer[i++] = Character.getNumericValue(c);
            // rchar[i]๊ฐ’์„ ์‚ฌ์šฉ ํ›„ i๋ฅผ 1 ์ฆ๊ฐ€
            // ์ˆซ์žํ˜•ํƒœ์˜ charํ˜•์„ Intํ˜• ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด Character.getNumericValue ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
        }
    }
}

- ํ’€์ด :

  • ์ •์ˆ˜ํ˜•์„ ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•˜์—ฌ, ๋’ค์ง‘๊ธฐ์œ„ํ•ด์„œ StringBuffer์˜ reserve()๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
  • ๋ฐ”๊พธ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด์ด ์žˆ์œผ๋ฉด StringBuilder ๋˜๋Š” StringBuffer ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ reverse() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์ธ Stringํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณ€๊ฒฝํ• ์ˆ˜ ์—†์ง€๋งŒ StringBuffer ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์Šคํ„ด์Šค ๊ฐ’์„ ๋ณ€๊ฒฝํ• ์ˆ˜๋„์žˆ๊ณ , ์ถ”๊ฐ€ํ• ์ˆ˜๋„์žˆ๋‹ค.

 

โœ๏ธ  ) StringBuffer :
- ์ธ์Šคํ„ด์Šค ๊ฐ’ ๋ณ€๊ฒฝ/์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด StringBufferํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค.
- ๊ธฐ๋ณธ๊ฐ’์€ 16๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ• ์ˆ˜์žˆ๊ณ , ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ํฌ๊ธฐ๋Š” ๋ณ„๋„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋ง์…ˆ(+) ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด String ์ธ์Šคํ„ด์Šค์˜ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•˜๋ฉด, ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฒฐํ•ฉํ•˜๋ฉด ํ• ์ˆ˜๋ก ๋Šฆ์–ด์ง€๋Š”๋ฐ, StringBuffer ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๋„ ์—†๊ณ  ๋นจ๋ผ์ง„๋‹ค๊ณ  ํ•จ!

profile

Dev-Kyuu

@kyuu_ng

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!