
문자열 섞기
[문제 설명]
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
[제한사항]
1 ≤ str1의 길이 = str2의 길이 ≤ 10str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.
입출력 예)
str1 "aaaaa"
str2 "bbbbb"
result "ababababab"
class Solution {
public String solution(String str1, String str2) {
String answer = "";
if((str1.length() == str2.length()) && str1.length()<=10){
for(int i=0; i<str1.length(); i++){
answer += str1.charAt(i);
answer += str2.charAt(i);
}
}
return answer;
}
}
str1과 str2의 값을 한번씩 번갈아가면서 출력하기 위해서 반복문과 charAt을 사용해서 한글자씩 담았다
어차피 str1과 str2의 길이는 같으니까 뭘로해도 상관없어서 length()는 그냥 str1으로 했다 !
문자 리스트를 문자열로 변환하기
[문제 설명]
문자들이 담겨있는 배열 arr가 주어집니다.
arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.
[제한사항]
1 ≤ arr의 길이 ≤ 200arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다.
입출력 예)
arr ["a","b","c"]
result "abc"
class Solution {
public String solution(String[] arr) {
String answer = "";
for(int i=0; i<arr.length; i++){
answer += arr[i];
}
return answer;
}
}
배열값을 하나씩 빼서 String으로 처리하기 위해
반복문을 이용했다
대신 배열이니 length()가 아닌 length로 처리!
class Solution {
public String solution(String[] arr) {
return String.join("", arr);
}
}
한줄로 처리해버리기
이런 방법도 있다니 ..
문자열 곱하기
[문제 설명]
문자열 my_string과 정수 k가 주어질 때,
my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.
[제한사항]
1 ≤ my_string의 길이 ≤ 100my_string은 영소문자로만 이루어져 있습니다.
1 ≤ k ≤ 100
입출력 예)
입출력 예)
my_string k result "string" 3 "stringstringstring" "love" 10 "lovelovelovelovelovelovelovelovelovelove"
예제 1번의 my_string은 "string"이고 이를 3번 반복한 문자열은 "stringstringstring"이므로 이를 return 합니다.
입출력 예)
예제 2번의 my_string은 "love"이고 이를 10번 반복한 문자열은 "lovelovelovelovelovelovelovelovelovelove"이므로 이를 return 합니다.
class Solution {
public String solution(String my_string, int k) {
String answer = "";
if(1<=my_string.length() && my_string.length()<=100){
for(int i=0; i<k; i++){
answer += my_string;
}
}
return answer;
}
}
k번만큼 반복하면 되니
마찬가지로 반복문을 사용했다 !
더 크게 합치기
[문제 설명]
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다.
예를 들면 다음과 같습니다.
12 ⊕ 3 = 1233 ⊕ 12 = 312양의 정수 a와 b가 주어졌을 때,
a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
[제한사항]
1 ≤ a, b < 10,000
입출력 예)
a b result 9 91 991 89 8 898
입출력 예)
a ⊕ b = 991 이고, b ⊕ a = 919 입니다.
둘 중 더 큰 값은 991 이므로 991을 return 합니다.
입출력 예)
a ⊕ b = 898 이고, b ⊕ a = 889 입니다.
둘 중 더 큰 값은 898 이므로 898을 return 합니다.
class Solution {
public int solution(int a, int b) {
String str1 = Integer.toString(a)+Integer.toString(b);
String str2 = Integer.toString(b)+Integer.toString(a);
int answer1 = Integer.parseInt(str1);
int answer2 = Integer.parseInt(str2);
if(answer1>=answer2){
return answer1;
}else{
return answer2;
}
}
}
int a와 b를 붙여서 쓴 값을 String으로 변환하여 변수 처리하고 그걸 다시 int로 변환하여 if로 비교하였다
다 풀고나서 if문을 너무 자주쓰는 것 같아
삼항연산자를 썼어도 좋았겠다는 생각을 했다
처음 변환할때 integer라고 써서 에러가 났었는데
원인을 모르고 왜 에러가 날까 고민했었던 ..
Integer ! 잊지말자 !
두 수의 연산값 비교하기
[문제 설명]
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다.
예를 들면 다음과 같습니다.
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
입출력 예)
a ⊕ b = 291 이고, 2 * a * b = 364 입니다.
둘 중 더 큰 값은 364 이므로 364를 return 합니다.
입출력 예)
⊕ b = 912 이고, 2 * a * b = 364 입니다.
둘 중 더 큰 값은 912 이므로 912를 return 합니다.
class Solution {
public int solution(int a, int b) {
if(Integer.parseInt(a+""+b)==(2*a*b)){
return Integer.parseInt(a+""+b);
}else{
return Math.max(Integer.parseInt(a+""+b),2*a*b);
}
}
}
값이 같으면 Integer.parseInt(a+""+b); 을 리턴하고 그렇지 않을 경우는 Math.max를 사용하여 더 큰 값을 리턴했다
원래 같으면 또 if문을 써서 뭐가 더 큰지 비교했을텐데 지난번 Math.max를 사용한 코드를 본게 생각나서 활용해봤다
덕분에 더 간결하게 코드를 짤 수 있었다 !
'🤍 𝙋𝙍𝙊𝙂𝙍𝘼𝙈𝙈𝙀𝙍𝙎' 카테고리의 다른 글
[프로그래머스] Day5 조건문 (0) | 2024.08.21 |
---|---|
[프로그래머스] Day4 연산, 조건문 (0) | 2024.07.15 |
[프로그래머스] Day2 출력, 연산 (0) | 2024.07.03 |
[프로그래머스] Day1 출력 (0) | 2024.07.02 |