티스토리 뷰

 

#10 문자열겹쳐쓰기

 

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.


입출력 예 #1
예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2
예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

 

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        int a = overwrite_string.length();
        int b = my_string.length();
        answer = my_string.substring(0,s)+overwrite_string+my_string.substring(s+a,b);
        return answer;
    }
}

 

 

다른 풀이

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String before = my_string.substring(0, s);
        String after = my_string.substring(s + overwrite_string.length());
        return before + overwrite_string + after;
    }
}

 

 

* 이 문제는 substring() 문자열 함수를 활용하는 문제이다.

 

 

 

 

 

 

#11 문자열 섞기

 

길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.


입출력 예
str1
"aaaaa"
str2
"bbbbb"
result
"ababababab"

 

 

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

 

 

 

 

 

#12 문자리스트를 문자열로 변환하기

 

문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.


입출력 예
arr
["a","b","c"]

result 
"abc"

 

class Solution {
    public String solution(String[] arr) {
        String answer = "";
        int n = arr.length;
        for(int i=0; i<n; i++){
            answer+=arr[i];
        }
        return answer;
    }
}

 

 

* 문자열은 String이 인스턴스이기 때문에 lenght() 메서드를 사용하고 배열은 배열 자체 객체의 길이를 나타내기때문에 length 필드를 사용한다.

 

 

 

 

 

#13 문자열곱하기

 

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.



입출력 예 #1
예제 1번의 my_string은 "string"이고 이를 3번 반복한 문자열은 "stringstringstring"이므로 이를 return 합니다.

입출력 예 #2
예제 2번의 my_string은 "love"이고 이를 10번 반복한 문자열은 "lovelovelovelovelovelovelovelovelovelove"이므로 이를 return 합니다.

 

 

class Solution {
    public String solution(String my_string, int k) {
        String answer = "";
        
        for(int i=0; i<k; i++){
            answer+=my_string;
        }
        return answer;
    }
}

 

 

 

 

 

 

 

#14 더 크게 합치기

 

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 1233 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.


입출력 예 #1
a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

입출력 예 #2
a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

 

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String ch_a = Integer.toString(a);
        String ch_b = Integer.toString(b);
        int ab = Integer.parseInt(ch_a + ch_b);
        int ba = Integer.parseInt(ch_b+ch_a);
        
        if(ab>ba){
            answer=ab;
        }
        else{
            answer=ba;
        }
        return answer;
    }
}

 

 

다른 방법 비교연산식이 다르다.

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String num1 = a+""+b;
        String num2 = b+""+a;
        int num3 = Integer.parseInt(num1);
        int num4 = Integer.parseInt(num2);
        if((num3 > num4) || (num3 == num4)){
            answer += num3;
        } else {
            answer += num4;
        }
        return answer;
    }
}

 

 

 

 

 

#15 두 연산값 비교하기

 

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 1233 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.


입출력 예 #1
a ⊕ b = 291 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.

입출력 예 #2
a ⊕ b = 912 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.

 

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String A = Integer.toString(a)+Integer.toString(b);
        int ab = Integer.parseInt(A);
        int AB2 = 2*a*b;
        
        if(ab>=AB2){
            answer=ab;
        }
        else{
            answer=AB2;
        }
        return answer;
    }
}

 

 

 

새로운 방법들

 

class Solution {
    public int solution(int a, int b) {
        int add = Integer.parseInt(a+""+b);
        int mul = 2 * a * b;
        return Math.max(add, mul);
    }
}

 

 

class Solution {
    public int solution(int a, int b) {
        int ab = Integer.parseInt(Integer.toString(a) + Integer.toString(b));
        int ab2 = 2 * a * b;
        return ab == ab2 ? ab : Math.max(ab, ab2);
    }
}

 

 

class Solution {
    public int solution(int a, int b) {
        int ab = Integer.parseInt(a + "" + b);
        if(2 * a * b <= ab) {
            return ab;
        } else {
            return 2 * a * b;
        }
    }
}

 

 

class Solution {
    public int solution(int a, int b) {
        return Math.max(Integer.parseInt(String.valueOf(a)+String.valueOf(b)),2*a*b);
    }
}

'코딩 > 프로그래머스' 카테고리의 다른 글

코딩 기초 트레이닝 #22 ~ 24  (0) 2024.05.08
코딩 기초 트레이닝 #16 ~ 20  (0) 2024.04.24
코딩 기초 트레이닝 #6~9  (0) 2024.04.22
코딩 기초 트레이닝 #1~5  (0) 2024.04.17
[SQL] SELECT 1~5  (0) 2024.04.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday