danc
danc*dev
danc
  • 분류 전체보기
    • codestates_BE_bootcamp39
      • 주단위 일기
      • 회고
    • programming
      • JAVA
      • SPRING
      • GENERAL
      • LINUX
      • ALGORITHM
      • ERROR_HANDLING
    • web
      • NETWORK
      • DB
      • HTML
      • CSS
    • kr
    • nz

최근 글

인기 글

태그

  • css
  • 일기
  • 코드스테이츠
  • TIL일기
  • HTTP
  • TIL
  • AOP
  • 윈도우 11 우분투
  • TIL 일기
  • 회고
  • 코드스테이츠 백엔드
  • React에서 Authorization헤더

최근 댓글

티스토리

hELLO · Designed By 정상우.
danc

danc*dev

9 May - Array
codestates_BE_bootcamp39/주단위 일기

9 May - Array

2022. 5. 9. 10:30

오늘은 배열에 대해 공부를 하고 페어 분과 같이 코플릿 문제를 풀고 간단한 계산기 프로그램을 만드는 과정을 했다. 배열 부분에서는 기본적인 개념은 어느 정도 이해가 되었던 것 같으나 문법적인 부분에서 많이 버벅거렸다. 특히 예전에 살짝 C를 공부했을 때도 많이 버거웠었는데 역시 만만하지 않은 친구 같다. 반복문과 배열은 매우 중요하다고 하니 틈틈이 복습해둬야겠다. 근데 오늘 배운건 일차원 배열인데 다차원 배열은 그냥 넘어가는 건가..? 

내일부터는 드디어 자바의 클래스와 객체에 대해 배우게 되는데 드디어 말로만 듣던 객체지향의 개념에 대해 자세히 공부할 수 있을 것 같다. 당장 새로운걸 내일부터 시작하게 되지만 개인적으로 이전에 배웠던 조건문과 반복문 그리고 오늘 배운 배열까지 100% 이해했다고 보기는 어려울 것 같다. 특히 조건문은 어느 정도 자신감이 많이 생긴 것 같지만 반복문과 배열 그중에서 2중 3중 반복문 / 다차원 배열로 들어가면 정신이 아찔하다. 자바의 정석 책을 많이 활용해야겠다.

 

페어 프로그래밍을 3일 동안 하게 되면서 페어분이 정말 많은 정보와 조언들을 아낌없이 뿌려주셨는데 개인적으로 어떤 식으로 또 어떤 방향을 가지고 공부를 해야 할지 방황하던 나에게는 정말 단비와도 같았다. 특히 코플릿 문제를 풀면서 어떤 식으로 연습을 해야 할지 막막했는데 알고리즘 공부를 조금씩 해보라고 하셨다.

주신 팁 정리

자바의 정석 챕터 2 / 3 / 4 / 5 / 9 / 11 많이 파기 

코드업 100제 / 백준 25단계를 목표 ( 그 이후는 해당 알고리즘을 공부해서 도전) / 프로그래머스 (코딩 테스트 플랫폼에 익숙해지기)

이것이 취업을 위한 코딩 테스트다 (깃허브로 포크 해서 공부하기 + Youtube)

 


오늘 새롭게 안 것들

 

  • 배열을 출력할 땐 Arrays.toString(배열)을 써야 한다. 배열에 정의된 값들을 문자열 형태로 리턴해줌.
    (import java.util.Arrays; 선행) or 반복문으로도 가능
  • 배열의 index는 0부터 시작 array [3] = [0][1][2]. 즉 index의 범위는 0부터 배열 길이 -1까지 

  • 길이가 0 인 배열도 선언 가능 (int arr [] = new int [0])
    - 배열을 parameter로 받아야 하지만 아무 값도 넘기고 싶지 않을 때 사용

  • 배열의 복사는 for 문으로 가능하지만 System.arraycopy()를 쓰는 게 효율적이다.
    System.arraycopy(src, srcPos, dest, destPos, length) 
src  This is the source array.
srcPos  This is the starting position in the source array.
dest  This is the destination array.
destPos  This is the starting position in the destination data.
length  This is the number of array elements to be copied.

 

 

System (Java Platform SE 7 )

Sets the system property indicated by the specified key. First, if a security manager exists, its SecurityManager.checkPermission method is called with a PropertyPermission(key, "write") permission. This may result in a SecurityException being thrown. If n

docs.oracle.com

 

  • Arrays.copyOfRange(original, from, to) : 배열의 특정 범위를 원본 타입의 새로운 배열로 복사해서 반환한다. 
  • 문자열의 비교는 == 를 쓰면 안 된다. 참조 변수이기 때문에 주소 값을 가리키고 있다. 따라서. equals()을 써야 함.
    e.g) 스트링 타입 operator == "+"는 에러남 따라서 operator.equals("+") 

계산기 코드 중 특수 조건

오늘 페어 프로그래밍 시간에 만든 계산기의 일부분이다. 페어분께서 해당 코드를 작성해주셨는데 많이 배웠다. 

String 문자열에 +-*/ 를 넣고,  if 문에서 입력받은 operator변수의 연산자를 비교하는 것인데, String.valueOf()는 해당 인자를 문자열로 변환해준다.

즉 입력받은 char타입의 연산자를 string으로 형 변환을 해준다. 그리고 contains함수 (boolean return)을 사용해 operators 문자열에 입력받은 연산자가 있는지 비교하고 없으면 continue를 통해서 while 문 맨 위로 돌아간다.   

Scanner input = new Scanner(System.in);
    while (true) {
      .
      .
      .
      .
      System.out.println("연산자를 입력하고 Enter를 눌러주세요.");
      char operator = input.next().charAt(0);
      String operators = "+-*/";

      if (!operators.contains(String.valueOf(operator))) {
        System.out.println("연산자는 '+, -, *, /' 중에서 하나를 입력해주세요.");
        System.out.println("처음으로 돌아갑니다.");
        System.out.println();
        continue;
      }

 

저작자표시 (새창열림)

'codestates_BE_bootcamp39 > 주단위 일기' 카테고리의 다른 글

11 May - OOP기초 2  (0) 2022.05.11
10 May - OOP기초1  (0) 2022.05.10
6 May - 2주차 완료  (0) 2022.05.08
4 MAY - 본격적인 Java의 시작  (0) 2022.05.04
3 May - Git  (0) 2022.05.03
    'codestates_BE_bootcamp39/주단위 일기' 카테고리의 다른 글
    • 11 May - OOP기초 2
    • 10 May - OOP기초1
    • 6 May - 2주차 완료
    • 4 MAY - 본격적인 Java의 시작
    danc
    danc
    Backend 개발자를 목표로 공부 중 입니다.

    티스토리툴바