Teddy Bear Holding A Heart Balloon [๊ธฐ์ดˆ] ๋ฌธ์ž์—ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋’ค์ง‘๊ธฐ
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฅ‡ Coding Test/์˜ค๋‹ต๋…ธํŠธ

[๊ธฐ์ดˆ] ๋ฌธ์ž์—ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋’ค์ง‘๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/181913

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

[ ๋ฌธ์ œ์„ค๋ช… ]

๋ฌธ์ž์—ด my_string๊ณผ ์ด์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด queries๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. queries์˜ ์›์†Œ๋Š” [s, e] ํ˜•ํƒœ๋กœ, my_string์˜ ์ธ๋ฑ์Šค s๋ถ€ํ„ฐ ์ธ๋ฑ์Šค e๊นŒ์ง€๋ฅผ ๋’ค์ง‘์œผ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. my_string์— queries์˜ ๋ช…๋ น์„ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•œ ํ›„์˜ ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

[ ํ’€์ด๊ณผ์ • ]

class Solution {
    public String solution(String my_string, int[][] queries) {
        String answer = "";
        String[] str = my_string.split(""); //๋ฌธ์ž์—ด ์ชผ๊ฐœ์„œ ๋ฐฐ์—ด str์— ๋‹ด๊ธฐ
        String temp = ""; //์ž„์‹œ ๋ฌธ์ž์—ด temp ์„ ์–ธ
        
        for (int i=0; i<queries.length; i++) { //queries ๋ฐฐ์—ด ์ˆœํšŒํ•˜๋ฉด์„œ
            int s = queries[i][0]; //์ธ๋ฑ์Šค s,e์„ ์–ธ
            int e = queries[i][1];
            
            while (s<e) { //s๊ฐ€ e๋ณด๋‹ค ์ž‘์„๋™์•ˆ (๊ฐ€์šด๋ฐ ๋ฌธ์ž๋Š” ์–ด์ฐจํ”ผ ๊ทธ๋Œ€๋กœ์ž„)
                temp = str[s]; //str[s]์™€ str[e]๋ฅผ ๋’ค์ง‘์–ด์ฃผ๊ธฐ
                str[s] = str[e]; 
                str[e] = temp;
                s++; //s๋Š” 1์”ฉ ์ฆ๊ฐ€
                e--; //e๋Š” 1์”ฉ ๊ฐ์†Œ
            }
        }
        
        for (int i=0; i<str.length; i++) {
            answer += str[i];
        }
        
        return answer;
    }
}