가볍게 Math.random 함수를 활용한 로또 생성기 입니다.


import java.util.ArrayList;

import java.util.Collections;

 

public class Lotto{

    

    public static void main(String[] args){

 

       //번호 담을 통

       int[] ball = new int[45];

 

       //번호 집어넣기

       for(int i = 0 ; i < 45 ; i++){

            ball[i] = i+1;

       }

 

       ArrayList<Integer> goalList = new ArrayList<Integer>();

 

        //공 6개 뽑기

        while(!(goalList.size()==6)){

             //난수 추출

             int random = (int) (Math.random() * 45);

 

             //중복 방지

             if(!goalList.contains(ball[random])){

                  goalList.add(ball[random]);

             }

        }

 

       Collections.sort(goalList); //정렬

 

       for(int j = 0 ; j < 45 ; j++){

            System.out.print(goalList.get(j) + " ");

       }

 

    }

}

 

결과 [ 1 5 17 35 36 41 ]

반응형
  1. BlogIcon Anveloper 2021.01.01 01:45

    goalList를 TreeSet을 이용하면 중복체크랑 정렬이 없어도 움직일것 같습니다.

    • BlogIcon 썸머워즈 2021.01.01 15:55 신고

      넵 감사합니다~ :) 잘 모르던 시절에 코딩해놓은거라 딱히 수정할 생각은 없고 그냥 추억용 코드여서 어쨌든 감사합니다!

자바를 처음 접하거나 혹은 학교 수업 과제로 많이들 접해보는 구구단 출력입니다.

 

이중 for 문을 이용하게되는 아주 간단한 구조인데요 

 

누구나 for문을 접하면 한번씩을 출력해볼 '구구단'

 

보통

1*1

.

.

.

2*1

.

.

.

이런식으로 아래로 출력을 하게되는데 여기서 알아볼건

 

2*1    3*1    4*1    ...    9*1

2*2    3*2    4*2    ...    9*2

 

순으로 출력하는 방법입니다.

public class Nineninedan {

    public static void main(String[] args) {

        

        for(int i=1; i<=9; i++){

            

            for(int j=2; j<=9; j++){

                

                System.out.print(j+"X"+i+"="+j*i+"\t"); //Tab(\t) 만큼 벌리기

                

            } 

         System.out.println();//다음 줄

        }

    }

}

아주 간단하죠? 원래 구구단 출력하는 뒷숫자 변경을 앞숫자 변경으로 바꿔주기만 하면 끝입니다!

 

 

반응형

이 문제 역시 면접당시 받았던 코딩 테스트 문제 입니다...


역시 '%'_나머지 의 기능을 숙지하고 있다면 충분히 풀 수 있을만한 난이도입니다.


(난이도 : 최하)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package test.my.only;
 
import java.util.Scanner;
 
public class ExSum {
 
    public static void main(String[] args) {
         int num = 0// 입력된 숫자가 저장될 변수를 초기화 한다.
            int sum = 0// 입력된 숫자의 각 자리의 합을 저장할 변수를 초기화 한다.
            
            
            //System.out.println(1/10); // 이 값은 0 이 나온다.
            //System.out.println(1%10);// 이 값은 1 이 나온다.
            
            System.out.print("숫자를 입력하세요 : ");
            Scanner sc = new Scanner(System.in);
            num = sc.nextInt();
            
            while(num!=0){
                //num을 10으로 나눈 나머지를 sum에 더한다.
                sum += num%10;
                //num을 10으로 나눈 값을 다시 num에 저장한다.
                num /= 10;
            }
            System.out.println("각 자리수의 합은 "+sum+"입니다.");
            
    }
 
}
 


반응형

이 문제역시 제가 면접을 봤을당시 풀었던 코딩 시험입니다.

(저는 그당시 너무 복잡해게 풀어서 답은 맞는데 과정이 애매했었던....)


그래서 찾아보니 손쉽게 할 수 있는 방법이 있기에 그 방법으로 풀어봤습니다.

정렬하는법 꼭 알아두세요!(대부분 잘 아시겠지만...)


(난이도 : 최하)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package test.my.only;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
 
public class Test {
 
    public static void main(String[] args) {
        
        //중복을 제거하고 가나다 순으로 출력하라
        
        String[] arry = {"오리온","견우","직녀","오월주","삼월주","오리온"};
        ArrayList<String> list = new ArrayList<String>();
        //Arrays.sort(arry,Collections.reverseOrder()); //오름차순
        //Arrays.sort(arry); //내림차순
        
        for(int i = 0 ; i<arry.length;i++){
            if(!list.contains(arry[i])){ //포함되어 있나 없나 체크
                list.add(arry[i]); // list에 arry[i]에 해당하는 값이 없으면 추가
            }
        }
        
        //Collections.sort(list); // 내림차순
        Collections.sort(list,Collections.reverseOrder()); //오름차순
        
        System.out.println("list 의 사이즈"+list.size());
        for(int z = 0 ; z<list.size();z++){
            System.out.println(list.get(z));
        }
    }
 
}
 


반응형

이 문제는 제가 면접을 봤을 당시에 풀었던 코딩 시험 인데요... '%'_나머지 관련한 내용만 숙지하고 계시다면 충분히 풀수 있습니다.
(난이도 : 최하)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package test.my.only;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
 
public class Test {
 
    public static void main(String[] args) {
        
        //입력받은 두 수 사이에 7의 개수는?
        
        Scanner sc = new Scanner(System.in);
        
        int inputX = sc.nextInt(); //첫번째 값         
        int inputY = sc.nextInt(); //두번째 값        
        int count = 0// 7의 개수 카운트
        
        for(int i = inputX;i<=inputY;i++){
            
            int tmp = i;//정수를 그대로 유지하기위한 장치
            
            while(tmp>0){ // 값이 남아있나 체크
                
                if(tmp%10 == 7){
                    count ++;
                }
                
                tmp = tmp / 10//10을 실제로 나눈다 , 값이 남아있을때까지
            }
        }
    
        System.out.println("7이 포함된 숫자의 개수는 : "+count);
 
}
cs




cf) 77 같은 경우는 count + 2 


반응형

이 게시글은 순전히 저 혼자 얕은 지식으로 구현 해본것을 올려놓은 게시글입니다...

* 비전공자의 지식으로 웹관련 국비지원 학원만 다닌 지식으로 구현해본것입니다.


다들 아시다시피 야구 게임은 4자리 숫자를 누군가 정해놓고 다른사람이 그 정해진 순서와 숫자를 맞추는 건데요..

(무한도전에서도 나온적이 있죠?!)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package test.my.only;
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class BaseBallGame {
 
    public static void main(String[] args) {
        
 
        //0부터9까지의 숫자
        //정답이 정해져있고 4자리 숫자 중복 불가
        //적은 숫자중에 정답에 포함되어있으면 1ball 같은 위치면 1strike 하나도 맞는게 없으면 out
        
        ArrayList<Integer> anserList = new ArrayList<Integer>(); //정답을 담아두는 곳
        ArrayList<Integer> userList = new ArrayList<Integer>(); //정답을 적는 곳
        Scanner scan = new Scanner(System.in);
        int strike = 0//스트라이크 개수
        int ball = 0//볼 개수
        int accessAnser = 0//정답 적은 접근 횟수
        
        while(anserList.size() < 4){//정답 적어놓기
            int random = (int) (Math.random()*10);
            if(!anserList.contains(random)){
                anserList.add(random);
            }
        }
 
        do{
            
        while(userList.size() < 4){ //정답 적기 용
            int inputNumber = scan.nextInt(); //적은 값 담아두기
            if(!userList.contains(inputNumber)){
                userList.add(inputNumber);
                
                System.out.println("현재 입력된 번호");
                
                for(int i = 0 ; i<userList.size();i++){ //자신이 입력한 번호들 볼 수 있게 
                    System.out.print(" " + userList.get(i));
                }
                
            }else{
                System.out.println("중복된 번호 입니다 다시 입력해 주세요");
            }
        }
        //////////////////////////////////////입력 완료 체크 && 답 체크 && 카운트 세기///////////////////////////
        System.out.println("");
        System.out.println("입력이 완료 되었습니다.");
        System.out.print("체크 중입니다.");
        for(int i = 0 ; i <2 ; i ++){
            try {
                Thread.sleep(1000); //1초 재우기 (카운트 다운 용)
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.print(".");
        }
        
        for(int j = 0 ; j < 4 ; j ++){
            int checkNum = userList.get(j);
            if(anserList.contains(checkNum)){
                if(userList.indexOf(checkNum) == anserList.indexOf(checkNum)){
                    strike++;
                }else{
                    ball++;
                }
            }
        }
        
        accessAnser++;    
        
        if(ball==0 && strike == 0){
            System.out.println("OUT!!!");
            System.out.println("다시 입력해주세요");
        }else if(!(strike==4)){
            System.out.println(strike + " 스트라이크 " + ball +" 볼 입니다.");
            strike = 0// 값 초기화
            ball = 0// 값 초기화
            System.out.println("다시 입력해주세요");
        }
        
        userList.clear(); // 값 싹 비워주기
        //////////////////////////////////////////////////////////////////
        
        }while(!(strike==4)); //올 스트라이크가 아니면 계속 반복 do_while문
        
        System.out.println("올 스트라이크!!!");
        System.out.println(accessAnser + "회 만에 맞추셨습니다.");        
    }
    
}
 


반응형
  1. 박동하 2020.11.05 23:53

    프로그램 진짜 못짰네...
    이건 그냥 막 코딩이나 마찬가지임..

    • BlogIcon 썸머워즈 2020.11.05 23:58 신고

      네 맞아요 한 거의 2~3년전엔가 짠거같은데 ㅋㅋㅋㅋㅋㅋ 그냥 저한텐 유물이죠 굳이 이렇게 댓글까지

  2. 난난ㄴ눈누난난 2021.09.10 17:09

    대전 개발원 나오셨나 ?