오늘 공부 한 것
* 2주차 강의의 개인과제
* 팀과제를 완료하였다
* 1, 2주차 강의 복습
개인과제는 List / Set / Map 을 이용하여
자료 구조 요리 레시피 메모장 만들기였다
왼쪽이 처음 작성한 것이고
오른쪽이 수정한 것이다
strList.add(text); / strMap.put(lineNumber++, text); / strSet.add(text);
이렇게 세 곳에서 오류가 나서 결과값이 나오지 않아서 머리를 싸맸는데
알고보니 if문 쪽에 세미콜론을 지우지 않았던 것이다 문법이 맞지않았기에
결과값이 나오지 않은 것이었다
package week02; import java.util.*; //- 입력값 // - 저장할 자료구조명을 입력합니다. (List / Set / Map) // - 내가 좋아하는 요리 제목을 먼저 입력합니다. // - 이어서 내가 좋아하는 요리 레시피를 한문장씩 입력합니다. // - 입력을 마쳤으면 마지막에 “끝” 문자를 입력합니다. //- 출력값 // - 입력이 종료되면 저장한 자료구조 이름과 요리 제목을 괄호로 감싸서 먼저 출력 해줍니다. // - 이어서, 입력한 모든 문장앞에 번호를 붙여서 입력 순서에 맞게 모두 출력 해줍니다. public class prac2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String CollectionName = sc.next(); String title = 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); } title = "[List로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); //strList를 한줄씩 출력 for(int i=0; i < strList.size(); i++ ){ int number = i + 1; System.out.println(number + ". " + strList.get(i)); } break; case "Map": Map<Integer, String> strMap = new HashMap<>(); int lineNumber = 1; while (true){ // 한 줄식 입력 받아서 strMap에 저장하게끔 String text = sc.nextLine(); if(Objects.equals(text, "끝")); { break; } strMap.put(lineNumber++, text); } title = "[Map으로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); //strMap를 한줄씩 출력 for(int i=0; i<strMap.size(); i++){ int number = i + 1; System.out.println(number + ". " + strMap.get(i+1)); } break; case "Set": LinkedHashSet<String> strSet = new LinkedHashSet<>(); while (true){ // 한 줄식 입력 받아서 strMap에 저장하게끔 String text = sc.nextLine(); if(Objects.equals(text, "끝")); { break; } strSet.add(text); } title = "[Set으로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); Iterator iterator = strSet.iterator(); // 순회기능 //strSet를 한줄씩 출력 for(int i=0; i<strSet.size(); i++){ int number = i + 1; System.out.println(number + ". " + iterator.next()); } break; default: System.out.println("저장할 수 없는 자료구조입니다"); } } } |
package week02; import java.util.*; //- 입력값 // - 저장할 자료구조명을 입력합니다. (List / Set / Map) // - 내가 좋아하는 요리 제목을 먼저 입력합니다. // - 이어서 내가 좋아하는 요리 레시피를 한문장씩 입력합니다. // - 입력을 마쳤으면 마지막에 “끝” 문자를 입력합니다. //- 출력값 // - 입력이 종료되면 저장한 자료구조 이름과 요리 제목을 괄호로 감싸서 먼저 출력 해줍니다. // - 이어서, 입력한 모든 문장앞에 번호를 붙여서 입력 순서에 맞게 모두 출력 해줍니다. public class prac2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String CollectionName = sc.next(); String title = 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); } title = "[List로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); //strList를 한줄씩 출력 for(int i=0; i < strList.size(); i++ ){ int number = i + 1; System.out.println(number + ". " + strList.get(i)); } break; case "Map": Map<Integer, String> strMap = new HashMap<>(); int lineNumber = 1; while (true){ // 한 줄식 입력 받아서 strMap에 저장하게끔 String text = sc.nextLine(); if(Objects.equals(text, "끝")) { break; } strMap.put(lineNumber++, text); } title = "[Map으로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); //strMap를 한줄씩 출력 for(int i=0; i<strMap.size(); i++){ int number = i + 1; System.out.println(number + ". " + strMap.get(i+1)); } break; case "Set": LinkedHashSet<String> strSet = new LinkedHashSet<>(); while (true){ // 한 줄식 입력 받아서 strMap에 저장하게끔 String text = sc.nextLine(); if(Objects.equals(text, "끝")) { break; } strSet.add(text); } title = "[Set으로 저장된 " + title + "]"; //괄호로 감싸준 제목 System.out.println(title); Iterator iterator = strSet.iterator(); // 순회기능 //strSet를 한줄씩 출력 for(int i=0; i<strSet.size(); i++){ int number = i + 1; System.out.println(number + ". " + iterator.next()); } break; default: System.out.println("저장할 수 없는 자료구조입니다"); } } } |
팀별 과제는 숫자야구를 표한하는 것이었다
아래와 같이 나오도록 만드는 것이었는데
컴퓨터가 숫자를 생성하였습니다. 답을 맞춰보세요!
1번째 시도 : 134
0B0S
2번째 시도 : 238
1B1S
3번째 시도 : 820
2B1S
4번째 시도 : 028
3B
5번째 시도 : 280
3S
4번만에 맞히셨습니다.
게임을 종료합니다.
3B0S 나 0B3S로 표현이 자꾸되어 이것을 수정하는데 애먹었다
왼쪽이 처음 작성한 것이고
오른쪽이 수정한 것이다.
if문을 늘려서 조건을 더 추가하였다
사실 머리로는 if문을 추가해야할꺼 같은데라고 생각했지만
어떤식으로 해야할지 어느 위치에 해야할지 정하는게 어려워서
오랜시간이 걸렸다.
그래도 완성하고 정상 동작하는 것을 보니 매우 뿌듯했다
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Random random = new Random(); String num; while (true) { // 랜덤 숫자 생성 int a = random.nextInt(10); //0 ~ 10보다 작은 것을 불러옴 int b = random.nextInt(10); int c = random.nextInt(10); // a, b, c가 모두 다를때 구현 if (a!=b && a!=c && b!=c) { num = Integer.toString(a) + Integer.toString(b) + Integer.toString(c); break; } } System.out.println(num); int total = 1; boolean isEnd = false; while (true) { System.out.print(total + "번째 시도 : "); String input = sc.next(); int s = 0; int b = 0; for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ if(input.charAt(i)==num.charAt(j)){ if(i==j){ s++; } else { b++; } } } } System.out.println(s + "S" + b + "B"); if(s==3){ System.out.println(total + "번만에 맞히셨습니다!"); System.out.println("게임을 종료합니다"); break; } total++; } } } |
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Random random = new Random(); String num; while (true) { // 랜덤 숫자 생성 int a = random.nextInt(10); //0 ~ 10보다 작은 것을 불러옴 int b = random.nextInt(10); int c = random.nextInt(10); // a, b, c가 모두 다를때 구현 if (a!=b && a!=c && b!=c) { num = Integer.toString(a) + Integer.toString(b) + Integer.toString(c); break; } } System.out.println(num); int total = 1; boolean isEnd = false; while (true) { System.out.print(total + "번째 시도 : "); String input = sc.next(); int s = 0; int b = 0; for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ if(input.charAt(i)==num.charAt(j)){ if(i==j){ s++; } else { b++; } } } } if(s==3){ System.out.println(s + "S"); System.out.println(total + "번만에 맞히셨습니다!"); System.out.println("게임을 종료합니다"); break; }else if (b==3) { System.out.println(b + "B"); } else { System.out.println(b + "B"+ s + "S"); } total++; } } } |
이후에는 2주차 과제와 팀과제를 해보니
아직 강의 내용이 숙지되지 않은 것같아서
1주차 강의부터 다시 복습했다
'항해99' 카테고리의 다른 글
23.08.18 항해 99 16기 프로그래밍 기초2 1일차 (0) | 2023.08.18 |
---|---|
23.08.17 항해 99 16기 프로그래밍 기초1 4일차 (0) | 2023.08.17 |
23.08.15 항해 99 16기 프로그래밍 기초1 2일차 (0) | 2023.08.15 |
23.08.14 항해 99 16기 프로그래밍 기초1 1일차 (0) | 2023.08.14 |
항해 99 16기 스타터 노트 작성 (0) | 2023.08.14 |