문제 설명
정수 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
'코딩테스트 > 프로그래머스 기초' 카테고리의 다른 글
[코딩테스트 Lv.0] 수열과 구간 쿼리 2 (10) | 2025.03.27 |
---|---|
[코딩테스트 Lv.0] 수열과 구간 쿼리 4 (5) | 2025.03.27 |
[코딩테스트 Lv.0] 카운트 업 (4) | 2025.03.27 |
[코딩테스트 Lv.0] 콜라츠 수열 만들기 (6) | 2025.03.26 |
[코딩테스트 Lv.0] 배열 만들기 4 (6) | 2025.03.25 |