부트캠프 기록/Section1

[자바]기초/ 9일차 기록

bbangduck 2022. 9. 4. 17:14

 

  1. 배열
    • 동일한 타입의 값들을 묶은 자료 구조
    • 메모리셀은 1바이트의 메모리 공간을 가짐
    • 참조타입
    • Arrays.toString()
    • 기본값 : 0, null, false
    •  
  2. 1차원 배열
    • int[] numbers = new int[10]; //선언과 초기화 같이
    •  
  3. 2차원 배열
    • 배열의 요소가 배열인 경우
    • boolean [][] isTrue;
    • isTrue = new boolean[4][2]; // 4행 2열
    •  
  4. 가변 배열
    • 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 됨
    • 각 행들의 열의 수가 다를 수 있음 
    •  
  5. 배열탐색
    • for문, while문, 향상된 for문
    • 향상된 for문은 배열 요소의 값을 바꿀 수 없음 (얕은 복사/ 깊은 복사)

  • System.arraycopy(<object src>,<int srcPos>,<object dest>,<int destPos>,<int length>); //리턴없음 void  
  • Arrays.copyOfRange(<복사할 배열>,<복사 시작 인덱스>, <제외되는 복사 마지막 인덱스>); // 배열 13번 문제 , 배열리턴
  • 중간에 있는 배열 요소를 삭제하는 건 위에 있는 함수들보다 반복문이 효율적
  • str.replace, str.replaceAll // 배열 18번 문제

 

 


페어활동 회고 & 그룹 회고

package com.codestates.seb.calculator;
import java.util.Scanner;

public class Calculator {
  public static void main(String[] args) {
    System.out.println("===Java Calculator===");

    Scanner input = new Scanner(System.in);

        /*
            요구 사항에 따라 간단한 계산기를 만들어주세요.
            1. 사용자의 입력으로 첫 번째 숫자, 연산자, 두 번째 숫자를 받아야 합니다.
            2. 연산자의 종류는 +, -, *, / 입니다.
            3. 소수점 연산을 수행할 수 있어야 합니다.
            4. 연산 결과를 콘솔에 출력합니다.
        */

    while(true){
      System.out.println("첫 번째 숫자를 입력해주세요.");
      double a = input.nextDouble();
      System.out.println("연산자를 입력해주세요.");
      String c = input.next();
      System.out.println("두 번째 숫자를 입력해주세요.");
      double b = input.nextDouble();

      if(c.equals("+")){
        System.out.println(plus(a, b));
      }
      else if(c.equals("-")){
        System.out.println(minus(a, b));
      }
      else if(c.equals("*")){
        System.out.println(multiple(a, b));
      }
      else if(c.equals("/")){
        System.out.println(divide(a, b));
      }
      else {
        System.out.println("잘못된 입력입니다.");
        break;
      }
      System.out.println("계속 하시겠습니까? Y/N");
      if(input.next().equals("N")){
        System.out.println("종료됐습니다.");
        break;
      }
      else if(input.next().equals("Y")){
        continue;
      }
      else {
        System.out.println("종료됐습니다.");
        break;
      }

    }
  }

  public static double plus(double a, double b){
    return a+b;
  }
  public static double minus(double a, double b) {
    return a - b;
  }
  public static double multiple(double a, double b) {
    return a * b;
  }
  public static double divide(double a, double b) {
    return a / b;
  }
}

<세번째 페어분과 했던 마지막 활동인 계산기 만들기 ↑>

 

  • 이번 페어분은 처음으로 만난 나보다 코딩에 익숙하신 분이었다. 그래서 그랬는지 소통하는데 좀 어려움을 겪었던 것 같다.그 분께는 같이 푸는 문제가 너무 쉬웠던 것 같고 네비게이션이 필요하지 않아보였다. 나는 나보다 잘하는 사람을 만나니 위축돼서 네비와 드라이버의 역할에 충실하자고 적극적으로 주장을 못했던 것 같다. 그래도 같이 이야기하는 시간이 늘면서 서로 잘 맞춰갔던 것 같다. 마지막에 과제 제출했냐고 여쭤보셨는데 그게 그렇게 감사했다. 다음부터는 의견을 내거나, 설명하는게 망설여지지 않도록 개념을 확실히 익히고 페어 준비를 철저히 해야겠다. 

 

  • 처음으로 그룹 회고(딥토크) 시간을 가졌다. 나에겐 정말 소중한 시간이였다.  온라인으로 공부를 하다보니 여럿이서 같이 공부하기의 장점을 못 느끼는 경우가 많았는데 이런 단점이 보완됐다. 부트캠프에 참여하는게 옳은 선택이였는가  2주가 되도록 걱정하고 있었는데 그런 걱정이 말끔히 사라졌다. 부트캠프의 콘텐츠도 좋다고 느꼈지만 열정적인 동기들 덕분이 크다. 나도 누군가에게 동기부여가 되는 사람이 되도록 기원하면서 이번 포스팅을 끝마친다.