ex) 입력 예시
Set
백종원 돼지고기 김치찌개 만들기
돼지고기는 핏물을 빼주세요.
잘익은 김치 한포기를 꺼내서 잘라주세요.
냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
다진마늘 한스푼, 설탕 한스푼 넣어주세요.
종이컵으로 물 8컵 부어서 센불에 끓여주세요.
핏물 뺀 돼지고기를 넣어주세요.
된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
중불로 줄여서 오래 끓여주세요~!!
마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^
끝
예시 출력
[ Set 으로 저장된 백종원 돼지고기 김치찌개 만들기 ]
1. 돼지고기는 핏물을 빼주세요.
2. 잘익은 김치 한포기를 꺼내서 잘라주세요.
3. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
4. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
5. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
6. 핏물 뺀 돼지고기를 넣어주세요.
7. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
8. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
9. 중불로 줄여서 오래 끓여주세요~!!
10. 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^
Scanner sc = new Scanner(System.in); String CollectionName = sc.nextLine(); String title = sc.nextLine();
Scanner로 입력 값 받기
문자를 입력 받아야 하기 때문에 String
띄어쓰기를 포함해야 하므로 sc.nextLine()
으로 입력값 받기
switch (CollectionName) { case "List": ArrayList<String> strList = new ArrayList<>(); while (true) { // 한줄씩 입력받아서 strList 에 저장 String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strList.add(text); }
CollectionName을 기준으로 switch
ArrayList 생성(입력받아야 하는 값 : String)
while문 사용
"끝"이라고 입력을 받으면 break
그 외에는 계속 입력을 받아 리스트에 추가해줌
title = "[List로 저장된 " + title + "]"; // 괄호로 감싸준 제목 System.out.println(title); for(int i = 0; i < strList.size(); i++) { // strList 한줄씩 출력 int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + strList.get(i)); } break;
case "Map": Map<Integer,String> strMap = new HashMap<>(); int Linenumber = 1; // put에 필요한 index가 없기 때문에 선언 while (true) { // 한줄씩 입력받아서 strMap에 저장 String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strMap.put(Linenumber++, text); //strMap.put(Linenumber, text); //Linenumber = Linenmber + 1, text; => 이렇게도 사용 가능 }
Map<key, value>이기 때문에 key : Integer, value(입력받을 텍스트) : String
HashMap : 중복을 허용하지 않고 순서를 보장하지 않음, 키와 값으로 null이 허용
while문 사용
"끝"이라고 입력을 받으면 break
put(index, text)
index가 필요하기 때문에 선언을 해줌
title = "[Map으로 저장된 " + title.lines() + "]"; System.out.println(title); // strList 한줄씩 출력 for(int i = 0; i < strMap.size(); i++) { int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + strMap.get(i + 1)); // i : index } // Linenumber = 1로 지정했기 때문에 i + 1이 되야함 break;
case "Set": LinkedHashSet<String> strSet = new LinkedHashSet<>(); while (true) { // 한 줄씩 입력받아서 strSet에 저장 String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strSet.add(text); }
title = "[Set으로 저장된 " + title + "]"; System.out.println(title); Iterator iterator = strSet.iterator(); // set이 가지고 있는 전부를 Iterator한테 넘겨줌 -> 하나하나 돌면서 조회할 수 있도록 도와줌 for(int i = 0; i < strSet.size(); i++) { // strList 한줄씩 출력 int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + iterator.next()); // 가지고있는 것을 iterator에 담아놨기 때문에 } break; default: // case에 포함된 경우가 아닌 것이 들어올 수 도 있기 때문에 default System.out.println("저장할 수 없는 자료구조입니다."); }
import java.util.*; public class Col7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String CollectionName = sc.nextLine(); String title = sc.nextLine(); switch (CollectionName) { case "List": ArrayList<String> strList = new ArrayList<>(); while (true) { String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strList.add(text); } title = "[List로 저장된 " + title + "]"; System.out.println(title); // strList 한줄씩 출력 for(int i = 0; i < strList.size(); i++) { int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + strList.get(i)); } break; case "Map": Map<Integer,String> strMap = new HashMap<>(); int Linenumber = 1; while (true) { String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strMap.put(Linenumber++, text); } title = "[Map으로 저장된 " + title.lines() + "]"; System.out.println(title); // strList 한줄씩 출력 for(int i = 0; i < strMap.size(); i++) { int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + strMap.get(i + 1)); } break; case "Set": LinkedHashSet<String> strSet = new LinkedHashSet<>(); while (true) { String text = sc.nextLine(); if (Objects.equals(text, "끝")) { break; } strSet.add(text); } title = "[Set으로 저장된 " + title + "]"; System.out.println(title); Iterator iterator = strSet.iterator(); // 하나하나씩 순회할 수 있도록 하는 구조 // strList 한줄씩 출력 for(int i = 0; i < strSet.size(); i++) { int number = i + 1; // i가 0번째이기 때문에 System.out.println(number + ". " + iterator.next()); } break; default: System.out.println("저장할 수 없는 자료구조입니다."); } } }