TIL

8/15

iksadnorth 2023. 8. 15. 10:53

👣 개요

1. 강의 1주차 개인 과제 제출

2. 2주차 언어 강의 학습 및 과제 제출

3. 주차별 팀 과제 수행.

 

👣 2주차 언어 강의 학습 및 과제 제출

더보기

chapter 3

- 연산자 우선순위:
산술[a + b] > 비교[a >= b] > 논리[a && b] > 대입[a = b]
- 비트 연산 :
모든 연산 중에 Bit 연산이 가장 빠르다.
7 << 2 == 28 // 111 << 2 == 11100
6 >> 1 == 3  // 110 >> 1 == 11

chapter 4
for, while, switch에 대한 문법 공부.

chapter 5
배열에 관한 문법 공부
- Arrays.fill({초기화할 배열}, {초기화값}) : 특정 배열의 모든 값을 특정 값으로 초기화.

import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		int[] intArray = new int[5];

		Arrays.fill(intArray, 1); // {1, 1, 1, 1, 1}
	}
}

chapter 6
collections에 대한 문법 공부.
.length [배열의 길이]
.length() [문자열의 길이]
.size() [컬렉션의 길이]

HW - 2주차 숙제.

import java.util.*;

public class MemoRecipe {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // List / Set / Map 중 하나 입력
        String collection = scanner.nextLine();

        // 적절한 container 가져오기.
        Container container = getContainer(collection);

        // 요리 제목 입력
        String title = scanner.nextLine();
        String head = String.format("[ %s 으로 저장된 %s ]", collection, title);
        container.add(head);

        int cnt = 1;
        while(true) {
            // 레시피 한 문장씩 입력
            String rawLine = scanner.nextLine();

            // 끝이라고 적으면 종료
            if(rawLine.equals("끝")) break;

            // 그게 아니라면 추가.
            String line = String.format("%s. %s", cnt++, rawLine);
            container.add(line);
        }

        // 적절한 형태로 출력.
        for(String item : container) {
            System.out.println(item);
        }
    }

    private static Container getContainer(String collection) {
        return switch (collection) {
            case "List": yield new ListContainer();
            case "Set": yield new SetContainer();
            case "Map": yield new MapContainer();
            default: throw new IllegalStateException();
        };
    }
}
// Container.java
public interface Container extends Iterable<String> {
    void add(String item);
}

// ListContainer.java
public class ListContainer implements Container {
    private final List<String> container = new ArrayList<String>();

    @Override
    public void add(String item) {
        container.add(item);
    }

    @Override
    public Iterator<String> iterator() {
        return container.iterator();
    }
}

// SetContainer.java
public class SetContainer implements Container {
    private final Set<String> container = new LinkedHashSet<>();

    @Override
    public void add(String item) {
        container.add(item);
    }

    @Override
    public Iterator<String> iterator() {
        return container.iterator();
    }
}

// MapContainer.java
public class MapContainer implements Container {
    private final Map<Integer, String> container = new LinkedHashMap<>();
    private int cnt = 0;

    @Override
    public void add(String item) {
        container.put(cnt++, item);
    }

    @Override
    public Iterator<String> iterator() {
        return container.values().iterator();
    }
}

 

👣 주차별 팀 과제 수행.

개요
숫자 야구 게임을 구현하는 숙제.
만약 정답이 423일 때, 사용자가 436라고 답을 했을 때,
자릿수가 같은 4(One Strike)와 자릿수는 다르지만 포함하고 있는 3(One Ball)에 의해
B1S1 라고 답하는 프로그램을 만들어야 한다.
이 때, 3S를 선언하면 그동안 시도했던 횟수를 알려주며 프로그램을 종료한다.

구현

 

GitHub - iksadNorth/prac-baseball-game

Contribute to iksadNorth/prac-baseball-game development by creating an account on GitHub.

github.com

 

'TIL' 카테고리의 다른 글

8/19  (0) 2023.08.19
8/18  (0) 2023.08.18
8/17  (0) 2023.08.17
8/16  (0) 2023.08.16
8/14  (0) 2023.08.14