프로그래머스 코딩테스트(배열의 원소만큼 추가하기, A 강조하기, 인덱스 바꾸기)
<배열의 원소만큼 추가하기>
문제 설명
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.
풀이
class Solution {
public int[] solution(int[] arr) {
int sum = 0;
for(int i:arr){
sum+=i;
}
int[] answer = new int[sum];
int n = 0;
for(int j=0;j<arr.length;j++){
for(int k=0;k<arr[j];k++){
answer[n+k] = arr[j];
}
n+=arr[j];
}
return answer;
}
}
다른 사람 풀이
class Solution {
public int[] solution(int[] arr) {
int len = 0;
for(int i : arr) len += i;
int[] answer = new int[len];
int idx = 0;
for(int i = 0; i < arr.length; i++)
for(int j = 0; j < arr[i]; j++)
answer[idx++] = arr[i];
return answer;
}
}
<A 강조하기>
문제 설명
문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
풀이
class Solution {
public String solution(String myString) {
String answer = "";
for(int i=0;i<myString.length();i++){
if(myString.charAt(i) == 'a'){
answer += 'A';
} else if('B'<=myString.charAt(i)&&myString.charAt(i)<='Z'){
answer += (myString.charAt(i)+"").toLowerCase();
} else {
answer += myString.charAt(i);
}
}
return answer;
}
}
다른 사람 풀이
class Solution {
public String solution(String myString) {
myString = myString.toLowerCase();
myString = myString.replace('a', 'A');
return myString;
}
}
<인덱스 바꾸기>
문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
풀이
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
for(int i=0;i<my_string.length();i++){
if(i==num1){
answer += my_string.charAt(num2);
} else if(i==num2){
answer += my_string.charAt(num1);
} else {
answer += my_string.charAt(i);
}
}
return answer;
}
}
다른 사람 풀이
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] ch = my_string.toCharArray();
ch[num1] = my_string.charAt(num2);
ch[num2] = my_string.charAt(num1);
answer = String.valueOf(ch);
return answer;
}
}