알고리즘 문제풀이/백준

#4436 : 엘프의 검

모항 2022. 11. 22. 17:34

풀이방법

사용된 것:

브루트포스

 

 

 

 

 

2022.11.22

 

오답노트 #4436 : 엘프의 검

풀이방법 및 문제점 2022.11.22 사용한 방법은 다음과 같다. 0부터 9까지의 숫자가 담겨있는 해시셋을 선언한다. 수열에 특정 숫자가 나타날 때마다 그 숫자를 해시셋에서 remove()한다. 해시셋이 텅

blowupmomo.tistory.com

0부터 9까지의 숫자가 저장된 HashSet을 선언한다.

각 숫자가 등장할 때마다 HashSet에서 그 숫자를 remove()한다.

HashSet이 텅 비는 순간 현재의 k를 출력한다.

 

형변환의 번거로움을 줄이기 위해 각 숫자는 Character형으로 다루었다.

 

그리고 곱하기를 하다 보면 숫자가 점점 커지므로, 곱한 값은 반드시 충분히 큰 정수형 데이터로 선언해주어야 한다. (long 등)

 

코드

Java(2022.11.22)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

public class Main {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		String input = null;
		
		while((input=br.readLine()) != (null)) {
			long n = Long.parseLong(input);
			
			HashSet<Character> hs = new HashSet<Character>();
			for(int i=0; i<10; i++) hs.add((char)(i+'0'));
			
			long k = 0;
			while(true) {
				k++;
				String str = Long.toString(k*n);
				for(int i=0; i<str.length(); i++) hs.remove(str.charAt(i));
				if(hs.isEmpty()) break;
			}
			
			System.out.println(k);
		}
		
	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#1918 : 후위 표기식  (0) 2023.01.11
#10971 : 외판원 순회 2  (0) 2022.11.29
#2246 : 콘도 선정  (0) 2022.11.17
#1063 : 킹  (0) 2022.11.14
#7983 : 내일 할거야  (2) 2022.11.09