본문 바로가기

공부/예제 풀이

백준 1475(실패)

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

 

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

 

출력

첫째 줄에 필요한 세트의 개수를 출력한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String stringInt = br.readLine();
        ArrayList<Integer> userInputArray = new ArrayList<>(stringInt.length()*2);
        int countSet=1;

        for (int i = 0; i < stringInt.length(); i++) {
            userInputArray.add((int) stringInt.charAt(i)-'0');
            System.out.print(userInputArray.get(i));
       }
        System.out.println();
        for (int i = 0; i<userInputArray.size(); i++) {
            userInputArray.add(userInputArray.get(i));
            if(userInputArray.contains(userInputArray.get(i))){
                countSet++;
            }else if(userInputArray.get(i) == 6 && userInputArray.contains(9)){
                countSet++;
            } else if (userInputArray.get(i) == 9  && userInputArray.contains(6)) {
                countSet++;
            }
        }
        System.out.println(countSet);
    }
}

흠...다 푼거 같은데 모르겠다.. 좀 어렵게 접근한거 같긴한데 어레이 안의 중복값을 체크하기 위해 contains()메서드를 사용했는데, 사실 이 로직은 그냥 포함이되어 있다면 count를 증가시킨다. 근데 사실 배열 안에 있는 값을 꺼내서 포함하냐고 묻는거니까 무조건 포함된다... contains()메서드는 뭔가 add할 때 조건을 걸고 하는 것 같다. 어레이의 중복값을 카운트 하는 방법을 더 생각해보자.오늘의 알고리즘도 실패

알고리즘을 요즘 계속 틀리고 있어서 자신감이 많이 떨어진다.. 이제부턴 그냥 무작정 푸는게 아니라 이론공부를 좀 해야하나? 생각이 든다.

'공부 > 예제 풀이' 카테고리의 다른 글

[프로그래머스] 햄버거 만들기  (0) 2023.12.19
약수의 갯수 구하기  (0) 2023.11.30
백준 11650  (0) 2023.10.24
백준 1676  (0) 2023.10.20
백준 1427번(실패)  (0) 2023.10.18