본문 바로가기

코딩테스트/JAVA

[JAVA] 프로그래머스 - 기초문제 Day7

https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc&languages=java

 

코딩 기초 트레이닝 | 프로그래머스 스쿨

프로그래밍 언어를 처음 접하거나 프로그래밍 언어에 익숙해지고 싶다면? 코딩 역량을 탄탄하게 길러주는 코딩 기초 트레이닝으로 차근차근 코딩에 대한 기초 감각을 길러 보세요.

school.programmers.co.kr

 

 

Day 7 - 반복문

  • 수열과 구간 쿼리 4
class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        
        for(int[] q:queries){
            for(int i=q[0];i<=q[1];i++){
                if(i%q[2]==0){arr[i]+=1;}
            }
        }
        
        return arr;
    }
}

 

 

 

  • 배열 만들기 2
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
class Solution {
    public int[] solution(int l, int r) {
        List<Integer> answer = new ArrayList<>();
        
        for(int i=l;i<=r;i++){
            boolean check = true;
            for(char s: String.valueOf(i).toCharArray()){
                if(!(s=='5' || s=='0')){
                    check = false;
                    break;
                }
            }
            if(check) answer.add(i);
        }
        
        return  answer.size()==0?new int[]{-1}:
                answer.stream()
                     .mapToInt(Integer::intValue)
                     .toArray();
    }
}

 

 

 

  • 카운트 업
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
    public int[] solution(int start_num, int end_num) {
        return IntStream.range(start_num,end_num+1).toArray();
    }
}

 

 

  • 콜라츠 수열 만들기
import java.util.*;
import java.util.Arrays;
class Solution {
    public int[] solution(int n) {
        
        List<Integer> arr = new ArrayList<>();
        
        arr.add(n);
        
        while(n>1){
            if(n%2==0){n/=2;}
            else{n=(3*n+1);}
            arr.add(n);
        }
        
        return arr.stream().mapToInt(Integer::intValue).toArray();
    }
}
import java.util.*;
import java.util.stream.IntStream;
class Solution {
    public int[] solution(int n) {
        
        return IntStream.concat(
                                IntStream.iterate(n,i->i>1, i->i%2==0?i/2:i*3+1),
                                IntStream.of(1)
        ).toArray();
        
    }
}

 

 

 

  • 배열 만들기 4
import java.util.*;
import java.util.stream.*;
import java.util.Arrays;
class Solution {
    public int[] solution(int[] arr) {
        List<Integer> stk = new ArrayList<>();
        int i=0;
        while(i<arr.length){
            if(stk.isEmpty() || arr[i] > stk.get(stk.size()-1)){
                stk.add(arr[i]);
                i+=1;
            }else{
                stk.remove(stk.size()-1);
            }
            
        }
        
        return stk.stream().mapToInt(Integer::intValue).toArray();
    }
}