-
프로그래머스 코딩테스트(한 번만 등장한 문자, 수열과 구간 쿼리 1, 1로 만들기)코딩테스트 2023. 5. 22. 19:39
<한 번만 등장한 문자>
문제 설명
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.풀이
import java.util.Arrays;
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split("");
String str = arr[0];
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
int num=0;
for(int j=0;j<arr.length;j++){
if(i==j){
continue;
} else if(arr[i].equals(arr[j])){
num++;
}
}
if(num==0) answer+=arr[i];
}
return answer;
}
}<수열과 구간 쿼리 1>
문제 설명
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr[i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = Arrays.copyOf(arr, arr.length);
for(int i=0;i<queries.length;i++){
for(int j=queries[i][0];j<=queries[i][1];j++){
answer[j]++;
}
}
return answer;
}
}<1로 만들기>
문제 설명
정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다.
10 / 2 = 5
(5 - 1) / 2 = 4
4 / 2 = 2
2 / 2 = 1
위와 같이 4번의 나누기 연산으로 1이 되었습니다.
정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요.풀이
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int i:num_list){
while(i!=1){
if(i%2==0){
i/=2;
answer++;
} else {
i=(i-1)/2;
answer++;
}
}
}
return answer;
}
}'코딩테스트' 카테고리의 다른 글
프로그래머스 코딩테스트(특정 문자열로 끝나는 가장 긴 부분 문자열 찾기, 세로 읽기, 날짜 비교하기) (0) 2023.05.25 프로그래머스 코딩테스트(배열 만들기 5, 간단한 논리 연산, 이진수 더하기) (0) 2023.05.23 프로그래머스 코딩테스트(수 조작하기 2, 문자열 뒤집기, 수열과 구간 쿼리 3) (0) 2023.05.22 프로그래머스 코딩테스트(진료순서 정하기, 문자열 반복해서 출력하기, 숨어있는 숫자의 덧셈 (2)) (0) 2023.05.20 프로그래머스 코딩테스트(가까운 수, 등차수열의 특정한 항만 더하기, 문자열 잘라서 정렬하기) (0) 2023.05.19