프로그래머스 코딩테스트(간단한 식 계산하기, 숫자 찾기, 순서 바꾸기)
<간단한 식 계산하기>
문제 설명
문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.
풀이
class Solution {
public int solution(String binomial) {
String[] arr = binomial.split(" ");
if(arr[1].equals("+")){
return Integer.parseInt(arr[0])+Integer.parseInt(arr[2]);
} else if(arr[1].equals("-")){
return Integer.parseInt(arr[0])-Integer.parseInt(arr[2]);
} else {
return Integer.parseInt(arr[0])*Integer.parseInt(arr[2]);
}
}
}
<숫자 찾기>
문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
풀이
class Solution {
public int solution(int num, int k) {
String str = num+"";
int answer = -1;
for(int i=0;i<str.length();i++){
if(str.charAt(i) == k+'0'){
return i+1;
}
}
return answer;
}
}
다른 사람 풀이
class Solution {
public int solution(int num, int k) {
return ("-" + num).indexOf(String.valueOf(k));
}
}
<순서 바꾸기>
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
풀이
class Solution {
public int[] solution(int[] num_list, int n) {
int[] answer = new int[num_list.length];
int i = 0;
for(int j=n;j<num_list.length;j++){
answer[i]=num_list[j];
i++;
}
for(int k=0;k<n;k++){
answer[i]=num_list[k];
i++;
}
return answer;
}
}
다른 사람 풀이
class Solution {
public int[] solution(int[] num_list, int n) {
int idx = 0;
int[] answer = new int[num_list.length];
for (int i = n;i < num_list.length;i++)
answer[idx++] = num_list[i];
for (int i = 0;i < n;i++)
answer[idx++] = num_list[i];
return answer;
}
}