기타/study

코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 3)

javaboiii 2024. 12. 25. 11:09

문제 설명

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

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


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

 

입출력 예
str1 str2 result
"aaaaa" "bbbbb" "ababababab"
class Solution {
    public String solution(String str1, String str2) {
        StringBuilder answer = new StringBuilder();
        for(int i=0; i<str1.length(); i++){
            answer.append(str1.charAt(i));
            answer.append(str2.charAt(i));
        }
        return answer.toString();
    }
}

문제 설명

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


제한사항
  • 1 ≤ arr의 길이 ≤ 200
    • arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다.

입출력 예
arr result
["a","b","c"] "abc"
class Solution {
    public String solution(String[] arr) {
        String answer = "";
        for(String a : arr){
            answer += a;
        }
        return answer;
    }
}

문제 설명

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


제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ k ≤ 100

 

입출력 예
my_string k result
"string" 3 "stringstringstring"
"love" 10 "lovelovelovelovelovelovelovelovelovelove"

입출력 예 설명

입출력 예 #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;
    }
}

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 a와 b가 주어졌을 때, a  b와 b  a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.

단, a  b와 b  a가 같다면 a  b를 return 합니다.


제한사항
  • 1 ≤ a, b < 10,000

입출력 예abresult
a b result
9 91 991
89 8 898

입출력 예 설명

입출력 예 #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) {
        String ab = String.valueOf(a) + String.valueOf(b);
        String ba = String.valueOf(b) + String.valueOf(a);
        
        if (ab.compareTo(ba) >= 0) {
            return Integer.parseInt(ab);
        } else {
            return Integer.parseInt(ba);
        }
    }
}

 

  • 문자열 결합: String.valueOf(a)와 String.valueOf(b)를 사용하여 숫자 a와 b를 문자열로 변환하고
    이를 결합하여 ab와 ba를 만듬
  • 비교: 두 문자열을 compareTo 메소드를 사용
    compareTo는 두 문자열을 사전순으로 비교하는 메소드로두 문자열이 같으면
    0 첫 번째가 더 크면 양의 값 두 번째가 더 크면 음의 값을 반환
  • 조건: ab.compareTo(ba) >= 0이면 a ⊕ b가 더 크거나 같으므로 ab를 반환하고 그렇지 않으면 ba를 반환

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 a와 b가 주어졌을 때, a  b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.

단, a  b와 2 * a * b가 같으면 a  b를 return 합니다.


제한사항
  • 1 ≤ a, b < 10,000

입출력 예
a b result
2 91 364
91 2 912

입출력 예 설명

입출력 예 #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) {
        String ab = String.valueOf(a) + String.valueOf(b);
        int abValue = Integer.parseInt(ab);
        
        int abResult = 2 * a * b;
        
         if (abValue >= abResult) {
            return abValue;
        } else {
            return abResult;
        }
    }
}

 

 

  • 문자열 결합: String.valueOf(a)와 String.valueOf(b)를 사용해 정수 a와 b를 문자열로 변환하
    이를 이어 붙여 ab로 만듬
  • 정수 변환: 이어 붙인 문자열 ab를 Integer.parseInt(ab)를 사용하여 정수로 변환
  • 곱셈 연산: 2 * a * b를 계산
  • 비교: abValue와 abResult을 비교하여 더 큰 값을 반환 두 값이 같으면 abValue를 반환