Backend/JAVA
[JAVA] 특강 15일차 : 코딩 훈련! 문제 풀이 (반복문 & 배열)
JOKUN
2022. 7. 10. 15:15
LoopControl
하나의 클래스에 메소드로 정의하여 메소드 호출하여 실행
📑문제
method1
어제 별 찍기 다른방법으로 풀이한 것
method2
Array 배열
하나의 클래스에 메소드로 정의하여 메소드 호출하여 실행
📑문제
method3
method4
method5
method6
method7
method8
method9
method10
method11
method12
method13
method14
method15
🔍풀이
import java.util.*;
public class Practice3 {
static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
// method1();
// method2();
// method3();
// method4();
// method5();
// method6();
// method7();
// method8();
// method9();
// method10();
// method11();
// method12();
// method13();
// method14();
method15();
}
//반복문
private static void method1(){
System.out.print("정수 : ");
int num = sc.nextInt();
int cnt = 0;
for (int i = 1; i < num*2; i++) {
if(i > num){
cnt--;
}else{
cnt++;
}
for (int j = 0; j < cnt; j++) {
System.out.print("*");
}
System.out.println();
}
}
private static void method2() {
System.out.print("당신의 이름을 입력해주세요 : ");
String userName = sc.nextLine();
int win = 0,draw = 0 ,fail = 0;
//가위(1) 바위(2) 보(3)
Random ran = new Random();
while(true){
System.out.print("가위바위보 : ");
String rps = sc.nextLine();
if(rps.equals("가위") || rps.equals("바위") || rps.equals("보")){
}else{
if(rps.equals("exit")){
System.out.println(userName +"님의 가위바위보 게임이 종료되었습니다.");
System.out.println((win+draw+fail) + "전 " + win +"승 " + draw + "무 " + fail + "패");
break;
}
System.out.println("잘못 입력하셨습니다.");
continue;
}
int user = -1;
switch (rps){
case "가위" :
user = 1;
break;
case "바위" :
user = 2;
break;
case "보" :
user = 3;
break;
}
int com = ran.nextInt(3)+1;
if (com == user){ // 무승부
System.out.println("비겼습니다.");
draw++;
} else { // 승리 or 패배
if ( (com == 1 && user == 2)
||(com == 2 && user == 3)
||(com == 3 && user ==1)){ //승리
System.out.println("이겼습니다!");
win++;
}else{ //패배
System.out.println("졌습니다ㅠㅠ");
fail++;
}
}
}
}
//배열
private static void method3() {
int[] intArray = new int[10];
int cnt = 1;
for (int i = 0; i < 10; i++) {
intArray[i] = cnt++;
System.out.print(intArray[i] + " ");
}
}
private static void method4() {
int[] intArray = new int[10];
int cnt = 10;
for (int i = 0; i < 10; i++) {
intArray[i] = cnt--;
System.out.print(intArray[i] + " ");
}
}
private static void method5() {
System.out.println("양의 정수 : ");
int num = sc.nextInt();
int[] intArray = new int[num];
int cnt = 1;
for (int i = 0; i < num; i++) {
intArray[i] = cnt++;
System.out.print(intArray[i] + " ");
}
}
private static void method6() {
String[] fruit = new String[5];
fruit[0] = "사과";
fruit[1] = "귤";
fruit[2] = "포도";
fruit[3] = "복숭아";
fruit[4] = "참외";
System.out.print(fruit[1]);
}
private static void method7() {
System.out.print("문자열 : ");
String str1 = sc.nextLine();
System.out.print("문자 : ");
char str2 = sc.nextLine().charAt(0);
char[] ChArray = str1.toCharArray();
String findIndex = "";
int idx = 0;
int findCh = 0;
for (char ch : ChArray
) { if(ch == str2){
findCh++;
findIndex += idx + " ";
}
idx++;
}
System.out.println(str1 + "에 " + str2 + "가 존재하는 위치(인덱스) : " + findIndex);
System.out.println(str2 + " 개수 : " + findCh);
}
private static void method8() {
System.out.print("0 ~ 6 사이 숫자 입력 : ");
int num = sc.nextInt();
if(0 < num && num <= 6){
String[] strArray = {"월", "화", "수", "목", "금", "토", "일", };
System.out.println(strArray[num]+ "요일");
}else {
System.out.println("잘못 입력했습니다.");
}
}
private static void method9() {
System.out.print("정수 : ");
int num = sc.nextInt();
int[] numArray = new int[num];
for (int i = 0; i < num; i++) {
System.out.print("배열" + i + "번째 인덱스에 넣을 값 : ");
int nextNum = sc.nextInt();
numArray[i] = nextNum;
}
int total = 0;
for (int i : numArray
) {
System.out.print(i + " ");
total += i;
}
System.out.println();
System.out.println("총 합 : " + total);
}
private static void method10() {
System.out.print("정수 : ");
int num = sc.nextInt();
if (num < 3 || num % 2 == 0){
System.out.println("다시 입력하세요.");
method10(); //재귀
}
int cnt = 0;
for (int i = 1; i <= num; i++) {
if(i <= (num/2) + 1) {
System.out.print(++cnt);
}else{
System.out.print(--cnt);
}
if ( i != num){
System.out.print(", ");
}
}
}
private static void method11() {
System.out.print("치킨 이름을 입력하세요 : ");
String ck = sc.nextLine();
String[] ckMenu = {"양념", "간장", "파닭", "호랑이", "뿌링클"};
int findIndex = -1;
for (int i = 0; i < ckMenu.length; i++) {
if(ckMenu[i].equals(ck)){
findIndex = i;
}
}
if(findIndex == -1){
System.out.println(ck + "치킨은 없는 메뉴입니다.");
}else{
System.out.println(ck + "치킨 배달 가능");
}
}
private static void method12() {
System.out.print("주민등록번호(-포함) : ");
String jumin = sc.nextLine();
if(jumin.matches("\\d{6}\\-[1-4]\\d{6}")){
char[] chArray = jumin.toCharArray();
int findIndex = jumin.indexOf("-");
findIndex++;
for (int i = 0; i < chArray.length; i++) {
if(i > findIndex){
System.out.print("*");
}else{
System.out.print(chArray[i]);
}
}
}else {
System.out.println("올바른 주민등록번호가 아닙니다.");
}
}
private static void method13() {
int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = new Random().nextInt(10)+1;
}
Arrays.stream(intArray).forEach(e->{
System.out.print(e + " ");
});
}
private static void method14() {
int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = new Random().nextInt(10)+1;
}
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
max = Arrays.stream(intArray).max().getAsInt();
min = Arrays.stream(intArray).min().getAsInt();
Arrays.stream(intArray).forEach(e->{
System.out.print(e + " ");
});
System.out.println();
System.out.println("최대값 : " + max);
System.out.println("최소값 : " + min);
}
private static void method15() {
// 첫 번째 방법
int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = new Random().nextInt(10)+1;
for (int j = 0; j < i; j++) {
if(intArray[i] == intArray[j]){
i--;
break;
}
}
}
Arrays.stream(intArray).forEach(e->{
System.out.print(e + " ");
});
// 두 번째 방법
Set<Integer> distinctSet = new LinkedHashSet<>();
while (true){
distinctSet.add(new Random().nextInt(10)+1);
if(distinctSet.size() == 10){
break;
}
}
distinctSet.forEach(e->{
System.out.print(e + " ");
});
}
}