[프로그래머스] Java 코딩테스트 - 인덱스 바꾸기

yihyun·2025년 4월 21일

코딩테스트

목록 보기
59/105
post-thumbnail

인덱스 바꾸기

✅ 문제 설명

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

✅ 제한사항

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

🔽 소스코드 1

💻 풀이

  • 문자열을 하나씩 분리해 배열에 담아준 후
  • num1num2의 값을 바꿔준다.
  • 이때 값을 먼저 덮어씌울 경우 기존 값이 바뀌기 때문에 num1의 값을 미리 저장해둔다.
  • 이후 변환된 인덱스를 반복문을 사용해 문자열로 만들어 반환한다.

시간 0.12ms ~ 0.13ms

	public String solution(String my_string, int num1, int num2) {
		
		String[] strArr = my_string.split("");
		StringBuilder sb = new StringBuilder();
		
		String str1 = strArr[num1];
		
		strArr[num1] = strArr[num2];
		
		strArr[num2] = str1;
		
		for(int i = 0; i < strArr.length; i++) {
			sb.append(strArr[i]);
		}
		
		return sb.toString();
	}

🔽 소스코드 2

💻 풀이

  • char[] 에 문자열을 하나씩 분리해 담아주고
  • 배열의 인덱스에 각각 값을 넣어준다.
  • 이후 String.valueOf() 를 사용해 문자열로 변환한 후 반환한다.

시간 0.02ms ~ 0.03ms

	public String solution1(String my_string, int num1, int num2) {
		String answer = "";
		
		char[] ch = my_string.toCharArray();
		
		ch[num1] = my_string.charAt(num2);
		ch[num2] = my_string.charAt(num1);
		
		answer = String.valueOf(ch);
		
		
		return answer;
		
	}
profile
개발자가 되어보자

0개의 댓글