-
프로그래머스 코딩테스트(빈 배열에 추가, 삭제하기, 소인수분해, 7의 개수)코딩테스트 2023. 5. 31. 18:36
<빈 배열에 추가, 삭제하기>
문제 설명
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
int num = 0;
for(int i=0;i<arr.length;i++){
if(flag[i]){
num+=(arr[i]*2);
}
}
int[] arr1 = new int[num];
int index = 0;
for(int j=0;j<arr.length;j++){
if(flag[j]){
for(int k=0;k<arr[j]*2;k++){
arr1[index+k] = arr[j];
}
index += (arr[j]*2);
} else {
for(int l=1;l<=arr[j];l++){
arr1[index-l] = 0;
}
index -= arr[j];
}
}
return Arrays.copyOf(arr1,index);
}
}다른 사람 풀이
import java.util.*; class Solution { public int[] solution(int[] arr, boolean[] flag) { List<Integer> list = new ArrayList<>(); for(int i = 0; i < arr.length; i++) { if(flag[i] == true) for(int j = 0; j < arr[i]*2; j ++) list.add(arr[i]); else for(int j = 0; j < arr[i]; j ++) list.remove(list.size()-1); } return list.stream().mapToInt(i->i).toArray(); } }
<소인수분해>
문제 설명
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.풀이
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
for(int i=2;i<=n;i++){
if(n%i==0){
while(n%i==0){
n/=i;
}
list.add(i);
}
if(n==1) break;
}
return list.stream().mapToInt(i->i).toArray();
}
}<7의 개수>
문제 설명
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.풀이
class Solution {
public int solution(int[] array) {
int answer = 0;
for(int i:array){
while(i!=0){
if(i%10==7){
answer++;
}
i/=10;
}
}
return answer;
}
}'코딩테스트' 카테고리의 다른 글
프로그래머스 코딩테스트(컨트롤 제트, 문자열이 몇 번 등장하는지 세기, 이차원 배열 대각선 순회하기) (0) 2023.05.25 프로그래머스 코딩테스트(특정 문자열로 끝나는 가장 긴 부분 문자열 찾기, 세로 읽기, 날짜 비교하기) (0) 2023.05.25 프로그래머스 코딩테스트(배열 만들기 5, 간단한 논리 연산, 이진수 더하기) (0) 2023.05.23 프로그래머스 코딩테스트(한 번만 등장한 문자, 수열과 구간 쿼리 1, 1로 만들기) (0) 2023.05.22 프로그래머스 코딩테스트(수 조작하기 2, 문자열 뒤집기, 수열과 구간 쿼리 3) (0) 2023.05.22