티스토리 뷰
#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