[기초][JAVA][02.14] 프로그래머스 코딩테스트

2025. 2. 14. 14:53· [LG 유플러스] 유레카/코딩테스트
목차
  1. n개 간격의 원소들
  2. n 번째 원소까지
  3. 순서 바꾸기
  4. n 번째 원소부터
  5. 첫 번째로 나오는 음수
  6. 가까운 1 찾기
  7. 카운트 다운
  8. 배열 만들기 1
  9. 접두사인지 확인하기
  10. 문자열의 앞의 n글자
  11. 접미사 배열
  12. 문자열 뒤의 n글자
  13. 부분 문자열 이어 붙여 문자열 만들기
  14. 글자 이어 붙여 문자열 만들기
  15. 콜라츠 수열 만들기
  16. 카운트 업
  17. l로 만들기
  18. 특별한 이차원 배열 1
  19. 간단한 식 계산하기
  20. 주사위 게임 1
  21. 조건에 맞게 수열 변환하기 3
  22. 접미사인지 확인하기
  23. 9로 나눈 나머지
  24. 배열의 원소 삭제하기
  25. 공백으로 구분하기 1
  26. 부분 문자열
  27. 꼬리 문자열
  28. x 사이의 개수
  29. 0 떼기
  30. 부분 문자열인지 확인하기

n개 간격의 원소들

import java.util.*;

class Solution {
    public int[] solution(int[] num_list, int n) {
        int size = num_list.length/n;
        if(num_list.length%n>0){size++;}
        int[] answer = new int[size];
        
        int count = 0;
        for(int i = 0; i < num_list.length; i+=n){
            answer[count++]=num_list[i];
        }
        return answer;
    }
}

n 번째 원소까지

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[n];
        for(int i=0; i<n; i++){
            answer[i]=num_list[i];
        }
        return answer;
    }
}

순서 바꾸기

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[num_list.length];
        int count=0;
        for(int i = n; i < num_list.length; i++){
            answer[count++]=num_list[i];
        }
        for(int i = 0; i < n; i++){
            answer[count++]=num_list[i];
        }
        return answer;
    }
}

n 번째 원소부터

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[num_list.length-n+1];
        int count = 0;
        for(int i = n-1; i < num_list.length; i++){
            answer[count++]=num_list[i];
        }
        
        return answer;
    }
}

첫 번째로 나오는 음수

class Solution {
    public int solution(int[] num_list) {
        int answer = -1;
        for(int i = 0; i < num_list.length; i++){
            if(num_list[i]<0){
                answer=i;
                break;
            }
        }
        return answer;
    }
}

가까운 1 찾기

class Solution {
    public int solution(int[] arr, int idx) {
        int answer = -1;
        for(int i = idx; i<arr.length; i++){
            if(arr[i]==1){
                answer=i;
                break;
            }
        }
        return answer;
    }
}

카운트 다운

class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[start_num-end_num+1];
        int count = 0;
        for(int i = start_num; i >= end_num; i--){
            answer[count++]=i;
        }
        return answer;
    }
}

배열 만들기 1

class Solution {
    public int[] solution(int n, int k) {
        int size = 0;
        for(int i = 1; i <= n; i++){
           if(k*i <=n){
               size++;
           } 
        }
        int[] answer = new int[size];
        for(int i = 0; i < size; i++){
            answer[i]=(i+1)*k;
        }
        return answer;
    }
}

접두사인지 확인하기

class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;
        for(int i = 0; i < is_prefix.length(); i++){
            if(i<my_string.length()){
                if(my_string.charAt(i)==is_prefix.charAt(i)){
                    answer=1;
                }else{
                    answer= 0;
                    break;
                }
            }else{
                answer=0;
                break;
            }
        }
        return answer;
    }
}

문자열의 앞의 n글자

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        for(int i = 0 ; i < n; i++){
            answer += my_string.charAt(i);
        }
        return answer;
    }
}

접미사 배열

import java.util.*;

class Solution {
    public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];
        int count = 0;
        for(int i = my_string.length()-1; i >=0; i--){
            String str = "";
            for(int j = my_string.length()-i-1; j<my_string.length(); j++){
                str+=my_string.charAt(j);
            }
            answer[count++]=str;
        }
        Arrays.sort(answer);
        
        return answer;
    }
}

문자열 뒤의 n글자

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        for(int i = my_string.length()-n; i < my_string.length(); i++){
            answer += my_string.charAt(i);
        }
        return answer;
    }
}

부분 문자열 이어 붙여 문자열 만들기

class Solution {
    public String solution(String[] my_strings, int[][] parts) {
        String answer = "";
        for(int i = 0; i < parts.length; i++){
            for(int j = parts[i][0]; j <= parts[i][1]; j++){
                answer += my_strings[i].charAt(j);
            }
        }
        return answer;
    }
}

글자 이어 붙여 문자열 만들기

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = "";
        for(int i = 0; i < index_list.length; i++){
            answer += my_string.charAt(index_list[i]);
        }
        return answer;
    }
}

콜라츠 수열 만들기

import java.util.*;

class Solution {
    public int[] solution(int n) {
        ArrayList<Integer> al = new ArrayList<>();
        al.add(n);
        while(n!=1){
            if(n%2==0){
                n /= 2;
                al.add(n);
            }else{
                n = 3 * n + 1;
                al.add(n);
            }
        }
        int[] answer = new int[al.size()];
        for(int i = 0; i < al.size(); i++){
            answer[i] = al.get(i).intValue();
        }
        return answer;
    }
}

카운트 업

class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[end_num-start_num+1];
        int count = 0;
        for(int i = start_num; i <= end_num; i++){
            answer[count++]=i;
        }
        return answer;
    }
}

l로 만들기

class Solution {
    public String solution(String myString) {
        String answer = "";
        
        for(int i = 0; i < myString.length(); i++){
            if(myString.codePointAt(i)<"l".codePointAt(0)){
                answer+= "l";
            }else{
                answer+=myString.charAt(i);
            }
        }
        return answer;
    }
}

특별한 이차원 배열 1

class Solution {
    public int[][] solution(int n) {
        int[][] answer = new int[n][n];
        int j = 0;
        for(int i = 0; i < n; i++){
            answer[i][j++]=1;
        }
        return answer;
    }
}

간단한 식 계산하기

class Solution {
    public int solution(String binomial) {
        int answer = 0;
        String[] str = binomial.split(" ");
        if(str[1].codePointAt(0)=="+".codePointAt(0)){
            answer = Integer.parseInt(str[0]) + Integer.parseInt(str[2]);
            System.out.println(answer + "+");
        }else if(str[1].codePointAt(0)=="-".codePointAt(0)){
            answer = Integer.parseInt(str[0]) - Integer.parseInt(str[2]);
        }else{
            answer = Integer.parseInt(str[0]) * Integer.parseInt(str[2]);
        }
        return answer;
    }
}

주사위 게임 1

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        if(a%2!=0 && b%2!=0){
            answer = a*a + b*b;
        }else if(a%2!=0 || b%2!=0){
            answer = 2 * (a + b);
        }else{
            answer = a - b;
            if(answer < 0){
                answer *= -1;
            }
        }
        return answer;
    }
}

조건에 맞게 수열 변환하기 3

class Solution {
    public int[] solution(int[] arr, int k) {
        int[] answer = new int[arr.length];
        for(int i = 0; i < arr.length; i++){
            if(k%2!=0){
                answer[i]=arr[i]*k;   
            }else{
                answer[i]=arr[i]+k;   
            }
        }
        return answer;
    }
}

접미사인지 확인하기

class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        int count = 0;
        if(my_string.length()<is_suffix.length()){
            return 0;
        }
        for(int i = my_string.length()-is_suffix.length(); i < my_string.length(); i++){
            if(my_string.charAt(i)==is_suffix.charAt(count++)){
                answer = 1;
            }else
                answer = 0;
        }
        return answer;
    }
}

9로 나눈 나머지

class Solution {
    public int solution(String number) {
        int answer = 0;
        String[] arr = number.split("");
        for(int i = 0; i < arr.length; i++){
            answer += Integer.parseInt(arr[i]);
        }
        answer%=9;
        
        return answer;
    }
}

배열의 원소 삭제하기

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[] delete_list) {
        ArrayList<Integer> al = new ArrayList<>();
        
        for(int i = 0; i < arr.length; i++){
            boolean b = true;
            for(int j = 0; j < delete_list.length; j++){
                if(delete_list[j]==arr[i]){
                    b = false;
                } 
            }
            if(b){
                al.add(arr[i]);
            }
        }
        
        int[] answer = new int[al.size()];
        for(int i = 0; i < answer.length; i++){
            answer[i]=al.get(i);
        }
        return answer;
    }
}

공백으로 구분하기 1

class Solution {
    public String[] solution(String my_string) {
        String[] answer = my_string.split(" ");
        return answer;
    }
}

부분 문자열

class Solution {
    public int solution(String str1, String str2) {
        int answer = 0;
        if(str2.contains(str1)){
            answer = 1;
        }
        return answer;
    }
}

꼬리 문자열

class Solution {
    public String solution(String[] str_list, String ex) {
        String answer = "";
        for(int i = 0; i < str_list.length; i++){
            if(!str_list[i].contains(ex)){
                answer += str_list[i];
            }
        }
        return answer;
    }
}

x 사이의 개수

class Solution {
    public int[] solution(String myString) {
        String[] arr = myString.split("x");
        int size = arr.length;
        if(myString.charAt(myString.length()-1)==('x')){
            size+=1;
        }
        int[] answer = new int[size];
        for(int i = 0; i < arr.length; i++){
            answer[i]=arr[i].length();
        }
        return answer;
    }
}

0 떼기

class Solution {
    public String solution(String n_str) {
        String answer = "";
        boolean startZero = false;
        if(n_str.charAt(0)=='0'){
            startZero=true;
        }
        for(int i = 0; i < n_str.length(); i++){
            if(startZero){
                if(n_str.charAt(i)=='0'){
                    
                }else{
                    answer+=n_str.charAt(i);
                    startZero=false;
                }
            }else{
                answer+=n_str.charAt(i);
            }
        }
        return answer;
    }
}

부분 문자열인지 확인하기

class Solution {
    public int solution(String my_string, String target) {
        int answer = 0;
        if(my_string.contains(target)){
            answer = 1;
        }
        return answer;
    }
}

'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글

[입문][JS][02.19] 프로그래머스 코딩테스트  (0) 2025.02.20
[입문][JS][02.16] 프로그래머스 코딩테스트  (0) 2025.02.16
[입문][JS][02.15] 프로그래머스 코딩테스트  (0) 2025.02.15
[기초][JAVA][02.13] 프로그래머스 코딩테스트  (0) 2025.02.14
[입문][JAVA][02.13] 프로그래머스 코딩테스트  (0) 2025.02.13
  1. n개 간격의 원소들
  2. n 번째 원소까지
  3. 순서 바꾸기
  4. n 번째 원소부터
  5. 첫 번째로 나오는 음수
  6. 가까운 1 찾기
  7. 카운트 다운
  8. 배열 만들기 1
  9. 접두사인지 확인하기
  10. 문자열의 앞의 n글자
  11. 접미사 배열
  12. 문자열 뒤의 n글자
  13. 부분 문자열 이어 붙여 문자열 만들기
  14. 글자 이어 붙여 문자열 만들기
  15. 콜라츠 수열 만들기
  16. 카운트 업
  17. l로 만들기
  18. 특별한 이차원 배열 1
  19. 간단한 식 계산하기
  20. 주사위 게임 1
  21. 조건에 맞게 수열 변환하기 3
  22. 접미사인지 확인하기
  23. 9로 나눈 나머지
  24. 배열의 원소 삭제하기
  25. 공백으로 구분하기 1
  26. 부분 문자열
  27. 꼬리 문자열
  28. x 사이의 개수
  29. 0 떼기
  30. 부분 문자열인지 확인하기
'[LG 유플러스] 유레카/코딩테스트' 카테고리의 다른 글
  • [입문][JS][02.16] 프로그래머스 코딩테스트
  • [입문][JS][02.15] 프로그래머스 코딩테스트
  • [기초][JAVA][02.13] 프로그래머스 코딩테스트
  • [입문][JAVA][02.13] 프로그래머스 코딩테스트
leeemingyu
leeemingyu
leeemingyu
ye
leeemingyu

블로그 메뉴

  • GitHub
  • Instagram
    전체
    오늘
    어제
    • 전체보기 (68)
      • GDSC (4)
        • 실시간 채팅 구현 (4)
      • [LG 유플러스] 유레카 (63)
        • Today I Learned (37)
        • 코딩테스트 (22)
        • 프로젝트 (4)

    공지사항

    인기 글

    최근 댓글

    최근 글

    hELLO · Designed By 정상우.v4.2.2
    leeemingyu
    [기초][JAVA][02.14] 프로그래머스 코딩테스트
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.