Posts [알고리즘] leetcode > Reverse String 풀이
Post
Cancel

[알고리즘] leetcode > Reverse String 풀이

String 타입 거꾸로 출력하기

최종 풀이

소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ReverseString {
    public static void main(String[] args) {
//        char[] s = {'h','e','l','l','o'};
        char[] s = {'H','a','n','n','a','h'};
        reverseString(s);
    }

    public static void reverseString(char[] s) {
        // 첫번째 풀이
        // left는 증가, right는 감소하면서 서로 자리를 스왑하면 된다.
        // 단, left < right 인 경우 break 한다.
        int left = 0;
        int right = s.length - 1;
        while (left < right) {
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;

            left++;
            right--;
        }
    }
}

풀이

캐릭터 배열 s의 최좌측은 left, 최우측은 right 로 지정하고 두 index 가 교차될 때까지 while 문을 돌리며 두 index에 해당하는 값들을 swap 한다.

결과

스크린샷 2020-09-08 오전 12.20.55

회고

이번 문제는 꽤나 알고리즘답게 풀었던 것 같다. 메모리도 저정도면 꽤나 적게 사용하였고, 속도는 가장 빠른 알고리즘으로 풀었다. 이 문제를 풀고 나서 기분이 좋아서 몇 번 돌려보기도 했던 것 같다. 😂

This post is licensed under CC BY 4.0 by the author.