[요구사항]
아래와 같이 출력해라.
[구구단] 몇 단을 출력하실건가요?
13
1단에서 9단까지만 출력이 가능합니다.
[구구단] 몇 단을 출력하실건가요?
8
8 1 = 8
8 2 = 16
8 3 = 24
8 4 = 32
8 5 = 40
8 6 = 46
8 7 = 56
8 8 = 64
8 * 9 = 72
[구구단] 몇 단을 출력하실건가요?
exit
프로그램을 성공적으로 종료했습니다.
1단에서 9단까지만 출력이 가능합니다.라고 출력하고, 다시 [구구단] 몇 단을 출력하실건가요?라고 묻는다.[구구단] 몇 단을 출력하실건가요?라고 묻는다.exit라고 입력한 경우 프로그램을 성공적으로 종료했습니다.라고 출력되고, 더 이상 입력값을 받지 않는다.import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while (true){
System.out.println("[구구단] 몇 단을 출력하실건가요?");
String in = input.nextLine();
if (in.equals("exit")){
System.out.println("프로그램을 성공적으로 종료했습니다.");
break;
}
int num = Integer.parseInt(in);
if (num < 1 || num > 9){
System.out.println("1단에서 9단까지만 출력이 가능합니다.");
}else{
for (int i = 1; i <=9; i++){
System.out.println(num+" * "+i+" = "+ num * i);
}
}
}
}
}

[요구 사항]
아래의 요구 사항을 따라서 구현하자. 그러면 아래와 같이 출력된다.
// 4번 과정
10
// 6번 과정
10
9
5
4
// 7번 과정
false
int) 데이터를 담을 빈 ArrayList를 만들어라.ArrayList에 5, 7, 10, 9, 4라는 데이터를 차례대로 넣어라. ArrayList에서 7이라는 데이터를 삭제해라. ArrayList에 들어있는 두 번째 값을 조회해서 출력해라.ArrayList를 내림차순으로 정렬해라. for문을 활용해서 ArrayList의 모든 데이터를 차례차례 출력해라. ArrayList안에 11의 값이 존재하는 지 여부를 출력해라.import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class Main{
public static void main(String[] args){
List<Integer>num = new ArrayList<>();
num.add(5);
num.add(7);
num.add(10);
num.add(9);
num.add(4);
num.remove(num.indexOf(7));
System.out.println(num.get(1));
Collections.sort(num);
Collections.reverse(num);
for(int i = 0; i < num.size(); i++){
System.out.println(num.get(i));
}
System.out.println(num.contains(11));
}
}

[요구사항]
아래와 같이 작동하도록 코드를 작성해라.
학생의 이름을 입력하고 엔터를 누르세요. (한글로만 입력해야 합니다.)
학생들을 다 입력했다면, print라고 입력해주세요.
박재성
유재석
jason
학생의 이름은 한글로만 입력해야 합니다.
강호동
신동엽
print
[학생 명단(가나다순)]
강호동
박재성
신동엽
유재석
int[], String[] 등)을 사용하지 말고, ArrayList를 사용해라.ArrayList를 사용할 때, 제네릭(Generic)을 사용해라.print가 아니라면, 학생의 이름은 한글로만 입력해야 합니다.라는 문구가 출력된다.import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner((System.in));
List<String>names = new ArrayList<>();
boolean flag = true;
System.out.println("학생의 이름을 입력하고 엔터를 누르세요. (한글로만 입력해야 합니다.)");
System.out.println("학생들을 다 입력했다면, print라고 입력해주세요.");
while(flag){
String st = input.nextLine();
if (st.equals("print")){
flag = false;
}
else if (st.matches(".*[ㄱ-ㅎㅏ-ㅣ가-힣]+.*")){
names.add(st);
} else{
System.out.println("학생의 이름은 한글로만 입력해야 합니다.");
}
}
Collections.sort(names);
System.out.println("[학생 명단(가나다순)]");
for (String data: names) {
System.out.println(data);
}
}
}

[요구사항]
아래와 같이 작동하도록 코드를 작성해라.
선수의 번호를 입력하세요.
13
이 선수의 100m 달리기 기록이 몇 초인지 입력하세요.
13.56
선수의 번호를 입력하세요.
7
이 선수의 100m 달리기 기록이 몇 초인지 입력하세요.
15.153
선수의 번호를 입력하세요.
7
이 선수의 100m 달리기 기록이 몇 초인지 입력하세요.
12.157
선수의 번호를 입력하세요.
2
이 선수의 100m 달리기 기록이 몇 초인지 입력하세요.
14
선수의 번호를 입력하세요.
print
1등 : 7번 선수 / 12.16초 (참가인원 : 3명)
print라고 입력하면 1등의 선수를 출력한다.int[], String[] 등)을 사용하지 말고, ArrayList를 사용해라.ArrayList를 사용할 때, 제네릭(Generic)을 사용해라.import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner((System.in));
List<Integer>player = new ArrayList<>();
List<Double>score = new ArrayList<>();
String in;
int playernum;
double playerscore;
while(true){
System.out.println("선수의 번호를 입력하세요");
in = input.next();
if (in.equals("print")){
break;
}
playernum = Integer.parseInt(in);
System.out.println("이 선수의 100m 달리기 기록이 몇 초인지 입력하세요.");
playerscore = input.nextDouble();
if (player.contains(playernum)) {
score.set(player.indexOf(playernum),Math.round(playerscore * 100) / 100.0);
}else{
player.add(playernum);
score.add(Math.round(playerscore * 100) / 100.0);
}
}
// score 리스트에서 min값을 찾고, 그 min값의 인덱스 값과 같은 player의 인덱스 값을 출력하기
System.out.println("1등 : "+player.get(score.indexOf(Collections.min(score)))+"번 선수 / "+Collections.min(score)+"초 (참가인원 : "+score.size()+"명)");
}
}

Math.round(playerscore * 100)/ 100.0) 부분을 처음에 Math.round((playerscore * 100) / 100.0) 로 잘못 구현해서 자꾸 소수점 첫번째 자리에서 반올림한 수가 들어갔다.자바는 아니고 파이썬으로 알고리즘 풀면서 새 변수 선언을 최소화하려고 하는 중인데 그것 때문인지 최대한 새 변수 선언을 줄이려고 노력하고 있는데 잘 하고 있는지 모르겠다. 가독성이 떨어지는 것 같기도 하구.. JCF는 처음 접해보는데 좋은 발전인 것 같다. 선언 부분이 길어서 복잡해 보이지만 막상 뜯어보면 오히려 간단하게 사용하기 위해 만들어진거 같다. 두번째 미션을 풀면서 파이썬의 딕셔너리를 생각했는데 찾아보니 JAVA에는 HashMap이라는 Map 인터페이스의 대표적인 Map 컬렉션이 있다고 한다. Map 인터페이스랑 Collection 인터페이스의 차이가 Iterable 인터페이스를 상속 받았는지 유무로 나뉘는 것을 잘 생각하고 잘 활용하면 좋을 것 같다.
이번 미션 많이 어려우셨을텐데 잘 수행해주셨네요👍👏 이번 3회차 미션에 대한 코드는 추후 톡방에서 공지 또는 클래스에서 다시 설명드리겠습니다!! 고생하셨습니다:)
[피드백]
"자바는 아니고 파이썬으로 알고리즘 풀면서 새 변수 선언을 최소화하려고 하는 중인데 그것 때문인지 최대한 새 변수 선언을 줄이려고 노력하고 있는데 잘 하고 있는지 모르겠다. 가독성이 떨어지는 것 같기도 하구"
-> 보통의 경우에 새 변수 선언을 굳이 최소화 하지 않습니다! 오히려 가독성을 위해 새 변수를 선언해서 그 코드가 어떤 의미인지 변수명으로 나타내는 경우가 많습니다~!! 참고해주세요
~