본문 바로가기

java

(102)
Java 핸드폰번호 유효성 체크 입력받은 숫자가 핸드폰 번호로써 유효한지 체크하는 프로그램 1. 첫번째 세 글자에는 010 이 들어와야 한다 2 모두 숫자로 이루어져 있어야 한다 3. 총길이가 11자리 숫자여야 한다. ​ 핸드폰 번호는 숫자여서 int가 아닌 전체를 다 받아야 하기 때문에 String 형식으로 인자 값을 받는다 ​ 첫 번째 문항을 확인할 때, Integer.parseInt Integer.parseInt를 이용하여 010 인지 비교해도 되고 tocharArray를 통해 한 글자씩 비교해도 된다. 비교했을 시., 알맞게 들어왔다면 기존에 false 였던 fritNum을 true로 반환해준다 ​ 두 번째 문항을 확인할 때, 받은 번호의 길이까지 반복문을 돌리고 각 char를 ch로 받아서 숫자인지 체크한다 그리고 다 맞았을 ..
Java 학교 (학생들의 성적표 만들기) 1. 각 반의 정원은 30명이다 2. 프로그래밍 반 학생들은 각자의 국어, 영어, 수학, 프로그래밍 언어, 알고리즘, 자료구조 점수가 있다 2-1 (네트워크반은 국어 영어만 동일하고 과목이다름. => 만드는 법 프로그래밍반과 동일하여 생략) 3. 모든학생의 점수와 이름을 랜덤으로 생성한다 학번은 중복없이중복 없이 순차적으로 생성되어야 한다 (또는 중복 없이 랜덤도 가능) 4. 성적표 매서드를 통해 각 학생의 이름/총점/평균점수를 볼 수 있어야 한다 ​ 메인에서는 메서드를 가져오는 코드만 있다. (코드의 가독성을 높이고, 깔끔하게 보이기 위해서) 한 반당 정원이 30명이기 때문에, 반복문을 school.length 까지만 돌리고 school 배열 안에 인덱스 순서대로 학생을 넣는다 그리고 그 학생들의 성적..
Java 섯다 게임 구현하기 섯다 룰 (무조건 카드덱 만드는 것부터 보세요!) ​ 1. 카드는 총 20장 1부터 10까지 2개의 덱이 있다고 생각하면 된다 1 3 8 에는 광이 들어감 4 7 9 에는 동물이 들어감 ​ 2. 카드를 총 2장 받는데 한 장씩 받고 베팅 후 나머지 한 장을 받음 카드 두 개를 더한 것이 최종 값 카드 합이 10이 될 경우 0으로 처리 족보가 없을 경우에 카드 합이 10이 넘어갈 시에는 일의 자리 숫자가 총합이 됨 ​ 3. 같은 숫자끼리 만나면 땡으로 변함 땡은 일반 숫자보다 높음 37(3광이랑 7 동물이 만나면) 모든 땡은 37 땡잡이한테 잡힘 ​ 4. 광끼리 만나면 광땡이 되고 38 광땡이 제일 높음 (무조건 이김) 13/18 광땡은 상대가 47(2개다 동물) 일시 47 땡잡이가 이김 ​ 5. 4와 9..
Java Yacht dice game 구현하기 yacht게임은 주사위 5개를 굴려서 5개의 조합을 바탕으로 족보 싸움을 하는 게임이다. 족보에는 [5다이스, 4 다이스, 라지 스트레이트, 스몰 스트레이트, 풀하우스]가 있다. ​ ​ Yacht라는 클래스를 만들고, 바뀌지 않을 값 MAX_DICE_NUM (주사위 숫자) / DICE_SIZE (최대 주사위 개수)를 지정한다 ​ 생성자를 만들어서 = (public Yacht()) 랜덤클래스를 이용한 ran을 넣고 주사위는 최대 주사위 갯수만큼 int형 배열로 dices로 지정 카운트는 주사위 숫자만큼 int형 배열로 counts로 지정한다. ​ roll 이라는 메서드는 한 개의 주사위의 던져 그 해당 주사위의 숫자를 알 수 있게 한다 ​ printDice 라는 메서드는 플레이어가 가지고 있는 주사위들을 ..
Java 로또만들기 정답버전 처음에는 변하지 않을 값들을 final를 통해 지정해 놓는다 로또번호가 나올수 있는 것을 LOTTO_SIZE = 45 보너스 번호는 몇번째에 나오게 할 것인가를 BOUNUS_INDEX = 4 ​ 그리고 HashSet 배열을 만들어서 lotto로 지정하고 (중복 없이 값을 넣기 위해 HashSet 사용) ​ 인자값을 int 형 변수 len으로 받는다 ​ 이렇게 메서드를 만들면, 로또 당첨번호를 무작위로 중복 없이 뽑을 때랑 내가 로또번호를 추첨할때랑 길이만 다르게 하면 되기 때문에 매머드 하나로 두 가지를 만들 수 있다 ​ 일단, 당첨번호를 생성하는데 while문을 통하여 설정한 길이 len 과 lotto.size() 즉, 로또 번호의 총 길이와 설정한 길이 같을 때까지 반복해서 값을 넣는다는 뜻 ​ 그리..
Java 로또만들기 - (오류발견 : 보너스번호관련) 처음에는 HashSet 로 로또 넘버를 추첨할 Set형식을 만드는데, 여기서 HashSet을 사용한 이유는 : 중복된 번호를 뽑지 못하기 위해 사용하였다 ​ 당첨번호를 뽑을때는 while문을 사용하여 앞서 만들었던 HashSet 형 로또 넘버의 사이즈가 7이 될 때까지 랜덤으로 번호를 뽑는다 (랜덤번호는 1~45까지 맞춤) ​ 여기서 오류!! HashSet으로 번호를 뽑을 때, 중복이 안된다는 장점이 있지만 반면에 뽑은 숫자가 Set으로 들어갈 때, 랜덤으로 인덱스가 형성된다는 점 즉, 보너스 번호가 어딨는지 모른다는 점이다. ​ 문제가 발생할지 몰랐을 때는, 그저 HashSet에 마지막 인덱스가 보너스 번호라고 인지했었다 하지만 HashSet에는 인덱스를 확인할 수 없어서 ArrayList를 만들고 로..
Basic Algorithm 14th 1. 최댓값을 매개변수로 전달받으면 0부터 최댓값 미만의 모든 값을 포함하는 int 배열을 생성하여 반환하는 range 함수 만들기 첫 번째로는 함수 이름을 int []로 range로 만들고 매개변수를 int num으로 받는다 num이 최대값이라고 생각하면 된다 ​ int형 배열로 반환해야 하기 때문에 arr이라는 배열을 만들고 ​ 반복문을 통해 i 가 0 부터 num 미만까지 돌면서 arr [index = i] = i로 인덱스 0번째부터 순서대로 배열 안에 넣는다 ​ 그리고 return 해주면 끝 ! ​ ----------------------------------------------------------------------------------------------------------------..
Basic Algorithm 13th 1. 전달한 문자가 알파벳이면 true 아니면 false String str을 반복문을 통해 str의 문자를 하나씩 검사한다 charAt() 함수를 사용하여 str의 인덱스를 ch라 지칭하고 조건문을 사용하여 알파벳인지 확인 후 출력한다 ​ ---------------------------------------------------------------------------------------------------------------------- ​ 2. 전달한 숫자가 3의 배수면 true 아니면 false -------------------------------------------------------------------------------------------------------------..