[프로그래머스] 배열 만들기 2 - JAVA

2024. 9. 8. 02:22·알고리즘

[작성일: 2023. 10. 11]

 

 

풀이

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int[] solution(int l, int r) {
        List<Integer> list = new ArrayList<>();
        for (int i = l; i <= r; i++) {
            int num = i;
            boolean isValid = true;

            while (num > 0) {
                int digit = num % 10;
                if (digit != 0 && digit != 5) {
                    isValid = false;
                    break;
                }
                num /= 10;
            }
            if (isValid) {
                list.add(i);
            }
        }
        if (list.isEmpty()) {
            return new int[]{-1};
        }

        int[] answer = new int[list.size()];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = list.get(i);
        }

        return answer;
    }
}

 

digit라는 변수를 만들어 while 반복문에서 모든 자리수를 확인하게 만들었다.

예를 들어 num이 105일 때, 첫 번째 반복에서 105%10은 5이므로 일의 자리는 5가 된다. 5는 문제의 조건에 부합하므로 다음 단계로 넘어간다. 

num을 10으로 나누어 num은 이제 10이 되고, 10%10은 0이므로 십의 자리도 조건에 부합한다.

num을 다시 10으로 나누면 num은 1이 되고, 1%10은 1이므로 조건에 부합하지 않아 isValid는 false를 반환하게 된다.

 

이런 식으로 i의 모든 자릿수를 확인해서 5와 0만 존재할 경우 true, 아닐 경우 false를 반환하고 true인 경우에만 list에 i를 추가한다.

list가 비어있을 경우에는 만족하는 조건이 없으므로 -1을 반환하고, 그게 아니라면 answer를 반환한다.

 

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [프로그래머스] 세 개의 구분자 - JAVA
  • [프로그래머스] x 사이의 개수 - JAVA
  • [프로그래머스] 조건에 맞게 수열 반환하기 2 - JAVA
  • [프로그래머스] 수열과 구간 쿼리 2 - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    Spring Security
    객체
    자바
    김영한
    변수
    MVC
    백준
    Security
    jsp
    성능최적화
    sql
    프로그래머스
    다형성
    Java
    HTTP
    Database
    최주호
    JPA
    spring
    Swift
    게시판만들기
    알고리즘
    스프링
    DB
    자바스크립트
    html
    생성자
    의존성주입
    데이터베이스
    javascript
  • hELLO· Designed By정상우.v4.10.0
뚜비
[프로그래머스] 배열 만들기 2 - JAVA
상단으로

티스토리툴바