Light Blue Pointer
본문 바로가기
Coding Test

[프로그래머스][Lv.0]문자열 섞기

by Greedy 2023. 11. 2.

문제 설명

길이가 같은 두 문자열 str1과 str2가 주어집니다.

두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.


제한사항

  • 1 ≤ str1의 길이 = str2의 길이 ≤ 10
    • str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

str1 str2 result

"aaaaa" "bbbbb" "ababababab"

 

Python 풀이과정

Python String replace() Method

txt = "I like bananas"

x = txt.replace("bananas", "apples")

print(x)

string.replace(oldvalue, newvalue, count)

Parameter Description

oldvalue Required. The string to search for
newvalue Required. The string to replace the old value with
count Optional. A number specifying how many occurrences of the old value you want to replace. Default is all occurrences

Python String Concatenation

x = "Python is "
y = "awesome"
z =  x + y
print(z)

How to get char from string by index?

s = "python"
s[3]//'h'

Python 제출코드

def solution(str1, str2):
    answer = ''
    for i in range(len(str1)):
        answer = answer+str1[i]+str2[i]
    return answer

Python 다른사람의 풀이

대부분 나랑 똑같이 풀었는데 신기한거 들고옴

def solution(str1, str2):
    answer = ''.join([str1[i] + str2[i] for i in range(len(str1))])
    return answer
def solution(str1, str2):
    res=''
    for s1,s2 in zip(str1,str2):
        res+=s1+s2
    return res
def solution(str1, str2):
    answer = []
    for i in range(len(str1)):
        answer.append(str1[i])
        answer.append(str2[i])
    return ''.join(answer)

이사람은 + 안쓰고 append씀

def solution(str1, str2):
    return ''.join(i+j for i,j in zip(str1,str2))

join과 zip을 한번에 써봄

 

Java 제출코드

class Solution {
    public String solution(String str1, String str2) {
        String answer = "";
        for(int i = 0; i< str1.length();i++){
            answer = answer 
                + Character.toString(str1.charAt(i))
                + Character.toString(str2.charAt(i));
        }
        return answer;
    }
}

Java 다른사람의 풀이

대부분 걍 다 비슷하다

char array로 만들어서 푼 사람 몇명 있고

 

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;
    }
}

스트링화 안 시켜도 그냥 가서 붙나봄?

이거 보고 답변 수정함

class Solution {
    public String solution(String str1, String str2) {
        String answer = "";
        for(int i = 0; i< str1.length();i++){
            answer = answer + str1.charAt(i)+str2.charAt(i);
        }
        return answer;
    }
}