문제 설명
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ str1의 길이 = str2의 길이 ≤ 10
- str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
str1 str2 result
⭐ 누적!!! 잊어먹지 말기 +=
class Solution {
public String solution(String str1, String str2) {
String answer = "";
String[] str1Arr = str1.split("");
String[] str2Arr = str2.split("");
for(int i=0; i<str1Arr.length; i++) {
for(int j=0; j<str2Arr.length; j++) {
answer += str1Arr[i] + str2Arr[j];
}
}
return answer;
}
}
실행한 결괏값 "ababababababababababababababababababababababababab"이 기댓값 "ababababab"과 다릅니다.
!
class Solution {
public String solution(String str1, String str2) {
String answer = "";
String[] str1Arr = str1.split("");
String[] str2Arr = str2.split("");
for(int i=0; i<str1Arr.length; i++) {
answer += str1Arr[i] + str2Arr[i];
}
return answer;
}
}
너무 어렵게 생각했다;;
2중 for문이 필요없는 문제였다
원래 처음에 charAt()를 생각하기도 했지만 오류가 나서 하지 않았다
class Solution {
public String solution(String str1, String str2) {
String answer = "";
for(int i = 0; i < str1.length(); i++){
answer += str1.charAt(i) + str2.charAt(i);
}
return answer;
}
}
답이 ASCII로 나타남
다른 사람의 문제 풀이를 살펴보니
class Solution {
public String solution(String str1, String str2) {
String answer = "";
for(int i = 0; i < str1.length(); i++){
answer += str1.charAt(i);
answer += str2.charAt(i);
}
return answer;
}
}
이렇게 하면 되었다
이유는 자바에서 char 값을 + 연산자로 더하면 ASCII로 나타낸다고 한다
몰랐던 사실!
그래서
answer += str1.charAt(i) + “” + str2.charAt(i);
이렇게 더하면 제대로 나타난다