yeonghoon.kim

  • 게시판
  • 갤러리
  • aws

[모범답안] 숫자야구

김영훈 2020.03.23 17:21 조회 수 : 463

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Exam03 {

    public static void main(String[] args) {
        // 숫자야구 0~9까지
        // 랜덤으로 중복없이 숫자 3개
        // 사용자가 숫자 3개를 입력시 결과를 제공
        // 자리와 값이 일치하면 S(스트라이크)
        // 자리는 틀리나 값이 일치하면 B(볼)
        // 값이 일치하지 않으면 O(아웃)
        // 총 9번안에 3S가 나와야 승리.
        Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<Integer>();
        List<Integer> inList = new ArrayList<Integer>();
        int d = 0;
        for (int j = 0; j < 3; j++) {
            d = (int) Math.floor(Math.random() * 9);
            if (list.contains(d) == true) {
                j--;
                continue;
            }
            list.add(d);
        }

        for (int i = 0; i < 9 ; i++) {
            while(true) {
                inList.clear();
                System.out.println("-------------");
                System.out.println("0~9까지 숫자 3개를 입력해 주세요. 중복없이 띄어쓰기로 구분");
                System.out.println("ex)1 2 3");
                System.out.println("-------------");
                String[] temp = sc.nextLine().split(" ");
                boolean b = true;
                
                for(int j = 0 ; j < temp.length - 1 ; j++) {
                    for(int k = j + 1 ; k < temp.length ; k++) {
                        if(temp[k].equals(temp[j])) {
                            b = false;
                            break;
                        }
                    }
                    if(!b) {
                        break;
                    }
                }
                
                if(b) {
                    for(int j = 0 ; j < temp.length ; j++) {
                        inList.add(Integer.parseInt(temp[j]));
                    }
                    break;
                } else {
                    System.out.println("중복된 숫자는 입력할 수 없습니다.");
                }
            }
            int s = 0;
            int b = 0;
            int o = 0;
            
            for(int j = 0 ; j < inList.size() ; j++) {
                if(list.indexOf(inList.get(j)) >= 0
                        && list.indexOf(inList.get(j)) == j) {
                    s++;
                } else if(list.indexOf(inList.get(j)) >= 0) {
                    b++;
                } else {
                    o++;
                }
            }
            
            int[] arr = new int[3];
            
            for(int j = 0 ; j < list.size() ; j++) {
                arr[j] = list.get(j);
            }
            
            int[] inArr = new int[3];
            
            for(int j = 0 ; j < inList.size() ; j++) {
                inArr[j] = inList.get(j);
            }
            
            int s1 = 0;
            int b1 = 0;
            int o1 = 0;
            
            for(int j = 0 ; j < inArr.length ; j++) {
                for(int k = 0 ; k < arr.length ; k++) {
                    if(inArr[j] == arr[k] && j == k) {
                        s++;
                    } else if(inArr[j] == arr[k]) {
                        b++;
                    }
                }
                
                if(s1 + b1 + o1 < j + 1) {
                    o1++;
                }
            }
            
            System.out.println("결과 => S : " + s + ", B : " + b + ", O : " + o );
            
            if(s == 3) {
                break;
            }
        }
    }
}

  • 추천 0

  • 비추천 0
이 게시물을
목록

댓글 0

사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

업로드 중... (0%)

0개 첨부 됨 ( / )
 
번호 제목 글쓴이 날짜 조회 수
공지 2025 일본 여행 계획 김영훈 2024.10.10 1309
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 1031
166 자바 - 1! + 2! + 3! + ... + 10! 의 값 구하기(팩토리얼) 김영훈 2020.03.08 343
165 자바 - 가장 가까운 수 구하기(28, 19, 87........) 김영훈 2020.03.08 371
164 자바 - 1부터 100까지의 소수 개수 구하기 김영훈 2020.03.08 319
163 자바 - 소인수분해 김영훈 2020.03.09 239
162 [모범답안] 자바 - 1부터 100까지의 소수 개수 구하기 김영훈 2020.03.22 423
161 [모범답안] 자바 - 1! + 2! + 3! + ... + 10! 의 값 구하기(팩토리얼) 김영훈 2020.03.22 263
160 [모범답안] 자바 - 가장 가까운 수 구하기(28, 19, 87........) 김영훈 2020.03.22 189
159 [모범답안] 자바 - 소인수분해 김영훈 2020.03.22 248
158 자바 - 상속 김영훈 2020.03.22 205
157 자바 - 오버라이딩(재정의) 김영훈 2020.03.22 261
156 학원 3주차 정리 김영훈 2020.03.23 249
155 학원 4주차 정리 김영훈 2020.03.23 283
» [모범답안] 숫자야구 김영훈 2020.03.23 463
153 학원 20200323 정리(에러, 예외처리) 김영훈 2020.03.23 291
152 학원 20200324 정리(변수, 디자인패턴) 김영훈 2020.03.24 293
151 학원 20200330 정리(데이터베이스 기본) 김영훈 2020.03.30 290
150 학원 20200331 정리(SELECT 기본 함수) 김영훈 2020.03.31 282
149 학원 20200401 정리(SELECT 집계 함수) 김영훈 2020.04.01 215
148 학원 20200402 정리(SELECT 순차 함수, 서브쿼리) 김영훈 2020.04.02 256
147 학원 20200403 정리(SELECT 조인, 쿼리 연습) 김영훈 2020.04.03 225
쓰기 태그
 첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지