JAVA를 잡아라!...

JAVA_[Lv.0] #11~15 (메소드, 문자열, 배열, foreach, 강제형변환, if, 삼항연산) 본문

JAVA/JAVA_연습문제_프로그래머스

JAVA_[Lv.0] #11~15 (메소드, 문자열, 배열, foreach, 강제형변환, if, 삼항연산)

onivv 2023. 11. 25. 22:40

문제 출처 : 프로그래머스

#11 문자열 섞기

문제 설명
문자들이 담겨있는 배열 arr 가 주어집니다.

arr 의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.


입출력 예

arr		result
["a","b","c"]	"abc"

 

소스코드 풀이

class Solution {
    public String solution(String str1, String str2) {
        String answer = "";
        //for 사용 : 정해진 범위만큼 문자를 추출 (단, 2개 매개변수의 문자열 길이가 동일)
        for(int i = 0; i < str1.length(); i++){
            answer += str1.charAt(i);			// charAt으로 문자 추출
            answer += str2.charAt(i);
        }
        return answer;
    }
}

 

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

문제 설명
두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.


입출력 예

입력 #1
apple pen
출력 #1
applepen

 

소스코드 풀이

class Solution {
    public String solution(String[] arr) {
        String answer = "";
        for(int i = 0; i < arr.length; i++){
            //arr에 대한 길이를 구하기 위해 length 사용
            answer += arr[i];
        }
        //  foreach를 사용해서도 가능!
        //  for(String a : arr) {
        //     answer += a;
        // }
        return answer;
    }
}

 

#13 문자열 곱하기

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


입출력 예

my_string	k	result
"string"	3	"stringstringstring"

 

소스코드 풀이

class Solution {
    public String solution(String my_string, int k) {
        String answer = "";
        for(int i = 0; i < k; i++){ //k번 반복해라
            answer += my_string;
        }
        return answer;
    }
}

 

#14 더 크게 합치기

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

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

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


입출력 예

a	b	result
9	91	991
89	8	898

 

소스코드 풀이

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        //"" 문자열에 int를 더하면, 문자열이 리턴
        //단, 연산자 우선법칙 때문에 int 앞에 붙여야함
        //대소비교를 위해 다시 int로 변환
        //String에서 int로 변환하기 위해
        //Integer클래스의 parseInt메소드 사용!
        
        //int --> "" + --> String --> parseInt --> int
        int num1 = Integer.parseInt("" + a + b);
        int num2 = Integer.parseInt("" + b + a);
        if(num1 > num2){
            answer = num1;
        }
        else{
            answer = num2;
        }
        return answer;
    }
}

 

#15 두 수의 연산값 비교하기

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

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

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

 

출력 예

a	b	result
2	91	364
91	2	912

 

소스코드 풀이

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        int num1 = Integer.parseInt("" + a + b);
        int num2 = 2 * a * b;
        answer = num1 > num2? num1 : num2; //삼항연산자 이용
        return answer;
    }
}