[프로그래머스] Lv.0 인덱스 바꾸기.java

김엄지·2024년 4월 30일

알고리즘

목록 보기
80/90

1. 문제

문제 설명

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 1 < my_string의 길이 < 100
  • 0 ≤ num1, num2 < my_string의 길이
  • my_string은 소문자로 이루어져 있습니다.
  • num1 ≠ num2

입출력의 예

2. 풀이 과정

  1. 입력된 문자열 my_string을 split를 이용하여 하나씩 나누어 배열 s에 저장한다.
  2. 두개의 인덱스(num1, num2)를 교환하기 위한 임시 저장할 빈 문자열 변수 tmp을 선언한다.
  3. s[num1]을 변수 tmp에 잠시 넣어주고, s[num2]를 s[num1]의 값을 넣어주고, tmp를 s[num2]에 넣어준다.
  4. 문자열 배열을 문자열로 바꾸기 위해 join을 사용한다.

3. 최종 코드

class Solution {
    public String solution(String my_string, int num1, int num2) {
        String[] s = my_string.split("");
        String tmp = "";
        String answer =  "";
        
        tmp = s[num1];
        s[num1] = s[num2];
        s[num2] = tmp;
        
        answer = String.join("", s);
        
        return answer;
    }
}

4. 공부 내용

String.join(separator, strings)

구분자를 사용하여 문자열 배열의 각 요소를 결합하여 하나의 문자열로 만든다. 이 메서드는 두 개의 인자를 받는다.

  • 구분자(separator) : 결합할 각 문자열 사이에 삽입할 문자열. 여기에서는 빈 문자열""을 사용하고 있으므로 문자열 사이에 아무런 구분자가 삽입되지 않는다.
  • 문자열 배열(strings) : 결합할 문자열이 들어 있는 배열. 여기에서는 s 배열을 사용

예를 들어, s 배열이 ["a", "b", "c"]라면, String.join("", s);는 "abc" 문자열을 반환한다.

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글