👣 개요
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를 선언하면 그동안 시도했던 횟수를 알려주며 프로그램을 종료한다.
구현