본문 바로가기

알고리즘/문제 풀이

SW D2 1926. 간단한 369게임

SW Expert Academy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

1. 코드 

import java.util.*;
import java.util.function.Predicate;

public class Solution {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int N = sc.nextInt();
        String [] strArr = new String[N];
        ArrayList<Character> charList = new ArrayList<>();

        // 1 ~ N까지 배열 안에 넣기
        for (int i = 0; i < N ; i++) {
            strArr[i] = String.valueOf(i + 1);

            // 배열 원소 하나당 자릿수 별로 쪼개서 charList안에 넣기. 루프 끝나기전에 빼기
            for (int j = 0; j < strArr[i].length(); j++) {
                charList.add(j, strArr[i].charAt(j));
            }

            // 만약 charList가 3이나 6이나 9를 가지고 있다면 돌면서 3,6,9 갯수 만큼 - 출력
            if(charList.contains('3')||charList.contains('6')||charList.contains('9')) {
                for (int j = 0; j < charList.size(); j++) {
                    if(charList.get(j) == '3' || charList.get(j) == '6' || charList.get(j) == '9'){
                        System.out.print("-");
                    }
                }
            }
            // 그 외라면 그냥 출력
            else{
                for (int j = 0; j < charList.size(); j++) {
                    System.out.print(charList.get(j));
                }
            }

            System.out.print(" ");

            charList.clear();
        }

    }
}

2. 배운 점 

문제를 어떻게 풀지 생각 -> 내 로직을 각 단계로 나누고 명세 -> 구현

이 단계를 준수해서 하자. 

무턱대고 하니까 내가 뭘 하고 있는지 길을 잃고 헤맨다.