본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] 배열 만들기 2

by 블루데이제이 2025. 3. 27.
728x90
반응형
문제 설명

정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.

제한사항
1 ≤ l ≤ r ≤ 1,000,000
입출력 예
l	r	result
5	555	[5, 50, 55, 500, 505, 550, 555]
10	20	[-1]
입출력 설명
입출력 예 #1
5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.

입출력 예 #2
10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.

내 풀이
Java
import java.util.*;
class Solution {
    public int[] solution(int l, int r) {
        int[] answer = {};
        List<Integer> list = new ArrayList<>();
        for(int i = l; i <= r; i++){            
            String s = String.valueOf(i);            
            boolean b = true;
            for(int j = 0; j < s.length(); j++){
                if(s.charAt(j) != '0' && s.charAt(j) != '5'){
                    b = false;
                    break;
                }               
            }
            if(b) list.add(i);
            
        }
        if(list.isEmpty()) return new int[]{-1};
        answer = list.stream().mapToInt(Integer::intValue).toArray();
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>


int isOnlyZeroOrFive(int num){
    while(num){
        int i = num % 10;
        num /= 10;
        if(i == 5 || i == 0) continue;
        return 0;
    }
    
    return 1;
}

int* solution(int l, int r) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(sizeof(int) * 1000000);
    
    int i, k;
    for(i = l, k = 0; i <= r; i++){
        if(isOnlyZeroOrFive(i)){
            answer[k++] = i;
        }
    }
    
    if(k == 0) answer[k] = -1;
    
    return answer;
}
Python
def solution(l, r):
    answer = []
    
    for i in range(l, r + 1):        
        if not set(str(i)) - set(['0','5']):
            answer.append(i);
            
    if not answer:
        answer = [-1]
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/181921

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


 

[코딩테스트 Lv.0] 배열 만들기 1

문제 설명정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.제한사항1 ≤ n ≤ 1,000,0001 ≤ k ≤

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 배열 만들기 3

문제 설명정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 배열 만들기 4

문제 설명정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다.변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 배열 만들기 5

문제 설명문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 배열 만들기 6

문제 설명0과 1로만 이루어진 정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk을 만드려고 합니다.i의 초기값을 0으로 설정하고 i가 arr의 길이보다 작으면 다음을 반복합

bluedayj.tistory.com

 

728x90
반응형