Javadocs

[Programmers] 인덱스 바꾸기 (Java) 본문

SelfStudy/Programmers(코딩테스트)

[Programmers] 인덱스 바꾸기 (Java)

Javatist 2023. 4. 10. 23:22

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

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

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

[ 입출력 예 ]

my_stringnum1num2result
"hello"12"hlelo"
"I love you"36"I I veoyou"

[ 입출력 예 설명 ]
입출력 예 #1

  • "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "I"을 바꾸면 "hlelo"입니다.

입출력 예 #2

  • "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I I veoyou"입니다.

[ 풀이 ]

import java.util.Arrays;

public class IndexSwitch {
    public String solution(String my_string, int num1, int num2) {
		// String 문자열을 char배열로 변환
        char[] charArr = my_string.toCharArray();	// [I,  , l, o, v, e,  , y, o, u] 출력
    	// System.out.println(Arrays.toString(charArr));
        // 인덱스 num1 자리에 num2값을 대입
        charArr[num1] = my_string.charAt(num2);		// [I,  , l,  , v, e,  , y, o, u]
        // 인덱스 num2 자리에 num1값을 대입
        charArr[num2] = my_string.charAt(num1);		// [I,  , l,  , v, e, o, y, o, u]
        // char배열을 String 문자열로 변환
        return String.valueOf(charArr);
    }
}

 


String.valueOf()
: 객체를 String 문자열 참조 자료형으로 형 변환해주는 역할.

public class Myclass {
	pulbic static void main(String args[]) {
    	char[] arr = {'h', 'e', 'l', 'l', 'o'};
        String str = String.valueOf(arr);
        System.out.println(str); 
        
        // hello가 출력
    }
}

charAt()
: charAt()은 문자열에서 문자 하나를 추출할 수 있는 메서드.

[사용법]

 : 문자열.charAt(인덱스)

public class CharAtEx01 {
    public static void main(String[] args) {
        String str = "ABCDEFG";

        char ch1 = str.charAt(0);
        char ch2 = str.charAt(1);
        char ch3 = str.charAt(2);

        System.out.println(ch1);	// A
        System.out.println(ch2);	// B
        System.out.println(ch3);	// C
    }
}
Comments