본문 바로가기
알고리즘 문제 풀이/Power JAVA

p596)10번 문제 - 로또 번호 생성 (TreeSet 사용)

by kakk789 2022. 4. 9.
로또번호를 생성하시오.

contains()함수로 개별 요소 중복 값 확인
TreeSet을 이용하여 정렬 및 중복 값 제거

로또번호 6개 출력

		Random r = new Random();
		
		TreeSet<Integer> ts = new TreeSet<Integer>();
		int cnt=0;
		
		while(true) {
			int num = r.nextInt(45)+1;
			if(ts.contains(num) == false) {
				ts.add(num);
				cnt++;
				if(ts.size()>=6) {
					
					break;
				}
			}
		}
		System.out.println(ts);

2중 루프로 로또번호 6개 * 6줄 출력

		TreeSet<Integer> ts = new TreeSet<Integer>();
		ArrayList<Integer> list = new ArrayList<Integer>();
		
		for (int i=0; i<6; i++) {
			
			while(true) {
				int num = r.nextInt(45)+1;
				if(ts.contains(num) == false) {
					ts.add(num);
					
					if(ts.size()>=6) {
						
						//로또번호 6개를 그대로 
						ArrayList에 저장하고 TreeSet 초기화
						if(!list.equals(ts)) {  // 중복 검사
							list.addAll(ts);
							ts.clear();
							break;
						}
					}
				}
			}
			System.out.println(list);
			list.clear(); // 출력 후 list 초기화
		}
반응형

댓글