코테

프로그래머스 기초 - 문자열 여러번 뒤집기

66krap 2024. 2. 15. 19:36

문제

 

문자열 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) {
        char[] stringList = my_string.toCharArray(); // my_string을 char 데이터 타입의 배열로

        for (int i = 0; i < queries.length; i+=1) {
            int[] list = new int[2]; // quries의 안에 값을 담기위한 것
            int count = 0;
            for (int j = 0; j < queries[i].length; j += 1) {
                list[count] = queries[i][j]; // 쿼리 내부의 값 대입
                count++; 조건을 위해서 
            }
            int size = list[1]-list[0]+1;
            char[] newList = new char[size];
            int newCount = 0;
            if (count == 2) {
                for (int l = list[1]; l >= list[0]; l--) {
                    newList[newCount] = stringList[l]; // 역순으로 정렬하는거라 역순으로 받게
                    newCount++;
                }
            }
            int second = 0;
            for (int z = 0; z < stringList.length; z++) {
                if (z >= list[0] && z <= list[1]) {
                    stringList[z] = newList[second]; // 역순으로 정렬한 값들을 집어넣기 위한것
                    second++;
                }
            }

        }

        String answer = "";
        for (int i = 0; i < stringList.length; i++) {
            answer += stringList[i]; // char 배열을 string으로 만들기 위한 노력
        }

        return answer;
    }
}

 

풀고 다른 사람들 풀이를 보니 더 간단하게 하는 사람들이 많았다..
하지만 머 나름대로 노력한 결과였다