본문 바로가기
CLASS/JAVA

#8 / remind1

by hingu 2024. 5. 10.
/* 1. 
Scanner 라이브러리를 이용하여 다음과 같이 결과가 나오도록 코드를 작성하시오.
단, 최소 및 최대 값은 0~100

[결과]
점수를 입력해주세요 : 
100~80 : A등급입니다
79~60 : B등급입니다
59~40 : C등급입니다
39~ : D등급입니다
*/

 

/* 2.

다음 키오스크 메뉴 형태에 맞춰서 주문하는 시스템  프로세서를 제작하게 됩니다.
다음 결과에 맞춰서 결과가 출력되로록 하세요. (조건 : 외부 class 사용)

[결과] 
2를 입력시
메뉴선택 : 1.커피 2.햄버거 3.콜라 4.피자
"햄버거를 신청하셨습니다"
단, 그 외 번호(1~4) 외 번호 입력시 "해당 매뉴는 SOLD OUT 입니다"

*/

 

/* 3.
PC가 1~9까지 랜덤으로 숫자를 하나 선택합니다.
선택한 숫자의 구구단을 출력하세요.
(조건 : 외부 class사용 할것 단, 즉시 실행 메소드에서 PC가 랜덤 숫자를 선택 되도록 합니다.)
반복문은 for문만 사용
*/

 

/*
7 - 외부 class 미사용
다음 원시배열을 기준으로 Class 배열을 활용하여 다음과 같이 결과가 나오도록
데이터 값을 분리 하시오. (Class배열 - ArrayList 입니다.)

숫자배열 : 60, 39, 42, 7, 93, 26, 38, 41, 9, 12, 71

짝수 클래스 배열 : 60, 42, 26, 38, 12
홀수 클래스 배열 : 39, 7, 93, 41, 9, 71

*/

 

/* 8.
외부 클래스 사용
사용자가 메뉴 와 갯수를 입력하면 총 결제금액을 출력하는 프로세서를 작성하시오.
(메뉴 및 가격 배열의 형태는 자유 입니다.)

[메뉴 배열 및 1EA 가격]
1. 콜라 - 3000
2. 커피 - 1500
3. 아이스크림 - 500 
  
[메뉴선택]
1. 콜라, 2. 커피, 3.아이스크림 : 1
해당 메뉴의 갯수를 입력하세요?  : 5
총 결제 금액 : 15000  
*/

 

/* 9 
외부 클래스 사용
사용자가 간편 회원가입을 하게 됩니다.
아래의 질문 내용에 해당 되는 내용을 클래스 배열 구조로 저장 되도록 합니다. 
(단, ArrayList 사용)

질문내용 배열 - (원시배열 형태임)
{"아이디","패스워드","고객명","이메일"}

[간편회원가입 실행]
아이디 입력하세요 : 
패스워드 입력하세요 :
고객명 입력하세요 : 
이메일 입력하세요 :

[배열 저장 형태]
[ [hong,a1234,홍길동,hong@nate.com], [park,aa1004,박나래,p1004@nate.com] ]
*/

package exam;

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

public class exam9 {

	public static void main(String[] args) {
		//new exam9_box();
		new exam9_tc().abc();
	}

}

class exam9_box{
	Scanner sc = new Scanner(System.in);
	final String qList[] = {"아이디","패스워드","고객명","이메일"};

	static ArrayList<ArrayList<String>> info2 = new ArrayList<ArrayList<String>>();
	
	public exam9_box() {
		int f,ff;
		int qLength = 2; //질문할 횟수(= 담길 정보 수)
		
		for(ff=0; ff<qLength; ff++) {
			ArrayList<String> info1 = new ArrayList<String>();
			for(f=0; f<qList.length; f++) {
				System.out.println(qList[f] + "입력하세요");
				String answ = this.sc.next();
				info1.add(answ);
			}
						
			ArrayList<ArrayList<String>> result = this.stockArray(info1);
			System.out.println(result);
		}
		
	};
	
	public ArrayList<ArrayList<String>> stockArray(ArrayList<String> a) {
		this.info2.add(a);
		return this.info2;
	}
}

class exam9_tc {
	static ArrayList<ArrayList<String>> member = new ArrayList<ArrayList<String>>(); //메모리에
	ArrayList<String> person = null; //각각의 가입자 데이터를 입략받는 배열 (abc 호출할때마다 null로 갱신 , person을 계속 만드는거) 
	final String list[] = {"아이디","패스워드","고객명","이메일"};
	Scanner sc = new Scanner(System.in);
	
	public void abc() {
		this.person = new ArrayList<String>();
		int w=0;
		while(w<2) {
			System.out.println(list[w] + "입력하세요");
			String info = this.sc.next();
			this.person.add(info);
			
			w++;
		}
		member.add(person);
		System.out.println(member);
		this.abc();
		
		this.sc.close();
	}
	
}

 

package exam;

//이걸 어케 풀어요;
/*
응용문제10
다음 배열을 확인 후 LinkedList를 사용하여 결과와 같이 출력 되도록 코드를 작성하시오.

[변경전 배열]
[1,3,6,9,12,15,18,21,24,27]

사용자가 1~30까지의 숫자를 하나 입력 합니다. 해당 숫자를 입력시 다음과 같이 변경 되어야함
1~30까지 숫자 하나를 입력 :  22

단, 기존에 배열 데이터가 동일할 시 데이터가 추가 안됨

[변경후 배열]
[1,3,6,9,12,15,18,21,22,24,27] 
  
 */

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;

public class exam10 {

	public static void main(String[] args) {
		new exam10_box().exam10_tc();

	}

}

class exam10_box{
	Scanner sc = new Scanner(System.in);
	
	Integer arr[] = {1,3,6,9,12,15,18,21,24,27};
	LinkedList<Integer> ls = new LinkedList<Integer>(Arrays.asList(arr));
	
	public void exam10_tc(){
		System.out.println("변경 전 : " + ls);
		
		System.out.println("1~30중 숫자 하나를 입력하세요 : ");
		Integer cNum = this.sc.nextInt();

		boolean ck = false;
		int node = 0; //index 번호 카운팅
		for(Integer num : ls) {
			if(cNum == num) {
				break;
			}else if(cNum < num){ //사용자가 입력한 값보다 배열값이 클 경우	
				ck = true;
				break;
			}else if(cNum > num) { //사용자가 입력한 값이 배열값보다 클 경우
				System.out.println("큰 값");
				node++;
				continue;
			}else { 
				node++;
			}
		}
		System.out.println("node : " + node); //들어가야 할 노드번호
		
		if(ck==true && node!=0 ) {
			ls.add(node,cNum);
		}else if(node == ls.size()) {
			ls.addLast(cNum);
		}
		
		
//		if(cNum <= 30 && cNum > 0) { // 1~30 //망
//			Integer f;
//			for(f=0; f<ls.size(); f++) {
//				if(cNum < ls.get(f)) { 
//					ls.add(f, cNum);	
//					break;	
//				}else if(cNum == ls.get(f)) {
//					break;
//				}else {
//					ls.addLast(cNum);	
//					break;
//				}
//			}
//		}else {
//			System.out.println("1~30중의 숫자가 아닙니다");
//		}
		
		System.out.println(ls);
		
		this.sc.close();
		
		
	}
}

 

package exam;

import java.util.ArrayList;
import java.util.Arrays;

/*11.
	해당 데이터 배열에 대해 데이터값 분석하는 프로세서 제작
	http://mekeyace.kbsn.or.kr/infodata.txt
	
	[결과]
	SKT 사용자 : 2
	KT 사용자 : 3
	LGT 사용자 : 1
*/
public class exam11 {

	public static void main(String[] args) {
		new ex11_box();

	}

}

class ex11_box {
	String user[][] = {
            {"hong","홍길동","hong@gmail.com","경기도","010-1234-5678","SKT"},
            {"kang","강감찬","kang@naver.com","인천광역시","010-3344-5566","KT"},
            {"leesh","이순신","leesh@daum.net","강원도","010-5501-3366","KT"},
            {"hansb","한석봉","hansb@nate.com","제주도","011-4459-3233","SKT"},
            {"leesan","이산","korea_lee@gmail.com","서울","010-5050-5531","LGT"},
            {"do_jong","정도전","do_jong04@naver.com","경기도","010-5050-5531","KT"},
            {"leesan","이산","korea_lee@gmail.com","서울","010-5050-5531","LGT"},
            {"leesan","이산","korea_lee@gmail.com","서울","010-5050-5531","알뜰"}
	};
	ArrayList<ArrayList<String>> tong2array = new ArrayList<ArrayList<String>>();
	
	public ex11_box() {
		ArrayList<ArrayList<String>> tss_list = tonginfo(this.ck_tsslist());
		Integer a[] = new Integer[this.ck_tsslist().size()];
		String[] stringArray = new String[a.length];
		
		int f,ff,z;
		for(f=0; f<tss_list.get(0).size(); f++) {
			a[f] = 0;
			for(ff=0; ff<user.length; ff++) {
				if(user[ff][5] == tss_list.get(0).get(f)) {
					a[f]++;
				}
			}
			stringArray[f] = Integer.toString(a[f]);
			
			System.out.printf("%s 사용자 : %d%n",tss_list.get(0).get(f),a[f]);
		}
		
		ArrayList<String> tscountlist = new ArrayList<String>(Arrays.asList(stringArray));
		this.tong2array.add(tscountlist);
		System.out.println(this.tong2array);

		
	}
	
	public ArrayList<String> ck_tsslist() { //통신사 리스트만 array로 리턴
		ArrayList<String> tss_list = new ArrayList<String>();
		tss_list.add(user[0][5]);
		int count = 0;
		
		int f,ff;
		for(f=1; f<user.length; f++) {
			for(ff=0; ff<tss_list.size(); ff++) {
				if(user[f][5] == tss_list.get(ff)) {
					count++;
				}
			}
			
			if(count == 0) {
				tss_list.add(user[f][5]);
			}else {
				count = 0;
			}
		}
		
		return tss_list;
	}
	
	public ArrayList<ArrayList<String>> tonginfo(ArrayList<String> a){ //2차배열로 담기
		this.tong2array.add(a);
		return this.tong2array;
	}
}

 

숙제 : 로또,11번