백준 5671번 호텔 방 번호 JAVA

YB·2025년 2월 17일

링크텍스트

설명

각 숫자에 대해 HashSet을 사용하여 자릿수별로 중복 여부를 판별했다.
시간복잡도: O(M-N), 공간복잡도: O(M-N)

코드

import java.util.*;
import java.io.*;

class Main {
	public static void main (String[] args) throws IOException {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;

		String line;
		while ((line = br.readLine()) != null){
			st = new StringTokenizer(line);
			int n = Integer.parseInt(st.nextToken());
			int m = Integer.parseInt(st.nextToken());

			int count = 0;

			for(int i=n;i<=m;i++){
				HashSet <Integer> hs = new HashSet<>();
				boolean check = true;
				int temp = i;

				while(temp>0){
					int num = temp%10;
					if(hs.contains(num)){
						check = false;
						break;
					}else{
						hs.add(num);
						temp/=10;
					}
				}
				if(check) count++;
			}

			sb.append(count).append("\n");
		}
		
		System.out.print(sb);
	}
}

profile
안녕하세요

0개의 댓글