FIF's 코딩팩토리

자바 기초 NCS교육과정(46)-컬렉션 문제풀이 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(46)-컬렉션 문제풀이

FIF 2019. 8. 2. 14:30
반응형

이번 시간은 문제풀이 시간 입니다.

코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!

생각하는 시간이 많을수록 실력은 향상됩니다.

 

 

 

 

 

Question 1) Prob001_LinkedList.java

 

booklist.txt파일의 데이터를 Stack으로 처리하여 출력되도록 프로그램을 구현하시오. 


  title publisher writer
  price JSP Programming JSPPub JSPExpert 21000 Servlet Programming WeBBest
  GoodName 20000 JDBC Programming JDBCBest NaDo SQL 30000 SQL Fundmental
  SQLBest Na SQL 47000 Java Programming JavaBest Kim kava 25000

 

 

 

booklist.txt

Java Programming/JavaBest/Kim kava/25000
SQL Fundmental/SQLBest/Na SQL/47000
JDBC Programming/JDBCBest/NaDo SQL/30000
Servlet Programming/WeBBest/GoodName/20000
JSP Programming/JSPPub/JSPExpert/21000

 

public class Prob001_LinkedList {

	public static void main(String[] args) {
		
        //구현하세요!!

	}// end main()

}// end class

 

 

 

 

 

 

 

 

 

 

 

 

 

Answer 1) Prob001_LinkedList.java

public class Prob001_LinkedList {

	public static void main(String[] args) {
		/*
		 * booklist.txt파일의 데이터를 Stack으로 처리하여 출력되도록 프로그램을 구현하시오. 
		 * title publisher writer
		 * price JSP Programming JSPPub JSPExpert 21000 Servlet Programming WeBBest
		 * GoodName 20000 JDBC Programming JDBCBest NaDo SQL 30000 SQL Fundmental
		 * SQLBest Na SQL 47000 Java Programming JavaBest Kim kava 25000
		 */
		LinkedList<String> sta = new LinkedList<String>();
		Scanner sc;
		try {
			File file = new File("./src/java1016_collection/prob/booklist.txt");
			sc = new Scanner(file);
			while (sc.hasNextLine()) {
				String stn = sc.nextLine();
				String data = stn.replaceAll("/", "   ");
				sta.push(new String(data));
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		System.out.println("title\tpublicher\twriter\tprice");
		while (!sta.isEmpty())
			System.out.println(sta.pop());

	}// end main()

}// end class

출력결과

 

 

 

 

 

Question 2) Prob002_LinkedList.java

 

 hospital.txt파일의 내용을 LinkedList에 Queue자료구조로 저장
 수행하는 프로그램을 구현하시오.

 

출력결과
   [김병조 의사] 진료과목 : 외과 환자수 : 39
   [이상만 의사] 진료과목 : 내과 환자수 : 50 
   [박상기 의사] 진료과목 : 피부과 환자수 : 20

 

hospital.txt

김병조/외과/39
이상만/내과/50
박상기/피부과/20

 

public class Prob002_LinkedList {

	public static void main(String[] args) {

		LinkedList<Doctor> queue = new LinkedList<Doctor>();
		// hospital.txt파일의 내용을 LinkedList에 Queue자료구조로 저장
        
		// 구현하세요!
	
    
    
    
	}// end main()

	public static void prnDisplay(LinkedList<Doctor> queue) {
		while (!queue.isEmpty()) {
			Doctor d = queue.poll();
			System.out.printf("[%s 의사]  ", d.getName());
			System.out.printf("진료과목:%s  ", d.getMedical());
			System.out.printf("환자수:%d\n\n", d.getPatient());
		}
	}// end prnDisplay()

}// end class

 

 

 

 

 

 

 

 

Answer 2) Prob00_LinkedList.java

public class Prob002_LinkedList {

	public static void main(String[] args) {

		LinkedList<Doctor> queue = new LinkedList<Doctor>();
		// hospital.txt파일의 내용을 LinkedList에 Queue자료구조로 저장
		// 수행하는 프로그램을 구현하시오.
		try {
			Scanner sc;
			File file = new File("./src/java1016_collection/prob/hospital.txt");
			sc = new Scanner(file);
			Doctor d;
			while (sc.hasNextLine()) {
				String stn = sc.nextLine();
				String[] data = stn.split("/");
				 d= new Doctor(data[0], data[1], Integer.parseInt(data[2]));
				queue.offer(d);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		prnDisplay(queue);
	}// end main()

	public static void prnDisplay(LinkedList<Doctor> queue) {
		while (!queue.isEmpty()) {
			Doctor d = queue.poll();
			System.out.printf("[%s 의사]  ", d.getName());
			System.out.printf("진료과목:%s  ", d.getMedical());
			System.out.printf("환자수:%d\n\n", d.getPatient());
		}
	}// end prnDisplay()
}// end class

출력결과

 

 

 

 

 

Question 3) Prob00_LinkedList.java

 

code, program매개변수에 저장된 값을 Sports클래스에 저장한후 
리턴하는 프로그램을 구현하시오.

 

[프로그램 실행결과]
  종목코드 :  a001, 종목명: 헬스
  종목코드 :  b002, 종목명: 배구
  종목코드 :  c003, 종목명: 스케이트

 

public class Prob003_LinkedList {

	public static void main(String[] args) {
		LinkedList<Sports> list=new LinkedList<Sports>();
		
		list.add(save("a001","헬스"));
		list.add(save("b002","배구"));
		list.add(save("c003","스케이트"));
		
		for(Sports sp : list)
			System.out.printf("종목코드 :  %s, 종목명: %s\n",sp.getCode(),sp.getProgram());
     
	}//end main()
	
	public static Sports save(String code, String program){
		//code, program매개변수에 저장된 값을 Sports클래스에 저장한후 
		//리턴하는 프로그램을 구현하시오.
	
    
    
	}//end save()

}//end class

 

 

 

 

 

 

 

 

 

Answer 3) Prob003_LinkedList.java

public class Prob003_LinkedList {

	public static void main(String[] args) {
		LinkedList<Sports> list=new LinkedList<Sports>();
		
		list.add(save("a001","헬스"));
		list.add(save("b002","배구"));
		list.add(save("c003","스케이트"));
		
		for(Sports sp : list)
			System.out.printf("종목코드 :  %s, 종목명: %s\n",sp.getCode(),sp.getProgram());
     
	}//end main()
	
	public static Sports save(String code, String program){
		//code, program매개변수에 저장된 값을 Sports클래스에 저장한후 
		//리턴하는 프로그램을 구현하시오.
		Sports A=new Sports(code, program);
		
		return A;
	}//end save()

}//end class

출력결과

 

 

 

 

Question 4) Prob004_HashMap.java

 

[출력결과]
  찾는 도서명을 입력 :java
  책이름 : java
  책저자 : kim
  페이지 : 100
   
  찾는 도서명을 입력 :jsp
  찾는 도서가 없습니다

 

public class Prob004_HashMap {
	public static void main(String[] args) {
		BookShop bk1 = new BookShop("java", "kim", 100);
		BookShop bk2 = new BookShop("c++", "lee", 250);
		BookShop bk3 = new BookShop("oracle", "park", 300);
		BookShop[] bs = new BookShop[3];
		bs[0] = bk1;
		bs[1] = bk2;
		bs[2] = bk3;
		display(bs);

	}

	public static void display(BookShop[] bs) {
	
 	//구현하세요!!   
    
}

 

 

 

 

 

 

 

 

 

 

 

Answer 4) Prob004_HashMap.java

public class Prob004_HashMap {
	public static void main(String[] args) {
		BookShop bk1 = new BookShop("java", "kim", 100);
		BookShop bk2 = new BookShop("c++", "lee", 250);
		BookShop bk3 = new BookShop("oracle", "park", 300);
		BookShop[] bs = new BookShop[3];
		bs[0] = bk1;
		bs[1] = bk2;
		bs[2] = bk3;
		display(bs);

	}

	public static void display(BookShop[] bs) {
		Map<String, BookShop> map = new HashMap<String, BookShop>();
		map.put(bs[0].getTitle(), bs[0]);
		map.put(bs[1].getTitle(), bs[1]);
		map.put(bs[2].getTitle(), bs[2]);
		System.out.println("찾는 도서명을 입력 :");
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();
		if (map.get(input) == null) {
			System.out.println("찾는 도서가 없습니다.");
		} else {
			System.out.printf("\n책이름 : %s\n책저자 : %s\n페이지 : %d", map.get(input).getTitle(), map.get(input).getAuthor(),
					map.get(input).getPage());
		}
	}
}

 

출력결과

 

 

반응형
Comments