자바 주차가 끝나고 본격적으로 스프링 주차로 넘어가는 시점에서 고민이 많았다. 자바도 안되는데 스프링을 보면 스프링을 알까? 하는 생각에 지금까지 배웠던 것을 정리하고 넘어가고 싶었다. 그러던 찰나에 새로 만난 팀원 중 한 분의 도움을 받을 수 있는 기회가 찾아왔다. 기회를 살려 오늘 배운 것을 정리해보고자 한다.
간단한 퀴즈를 도움을 받지 않고 혼자 풀어보는 시간을 가졌다. 또한 잘 모르는 것들은 과감히 배제하고 알고 있는 것들만 사용하여 코드를 구성했다. 어중간한 앎은 독이다.
public static void main(String[] args) {
System.out.println("우승 상금 게임!!!!");
Scanner sc = new Scanner(System.in); // 숫자 받기
System.out.print("첫번째 숫자 : "); // 첫번째 숫자
int firstNumber = sc.nextInt();
System.out.print("\n두번째 숫자 : "); // 두번째 숫자
int secondNumber = sc.nextInt();
int price; // 상금 로직
int max = Math.max(firstNumber, secondNumber);
if (firstNumber == secondNumber) {
price = (firstNumber+secondNumber)*1000;
} else {
price = max*1000;
}
System.out.println("우승 상금 : " + price); // 상금 출력
System.out.println("-------------------------------");
}
첫번째 숫자와 두번째 숫자를 비교해서 두 숫자가 같으면 숫자의 합*1000을 상금으로 받고, 두 숫자가 다르면 보다 큰 숫자*1000을 상금으로 받는다.
public static void main(String[] args) {
System.out.println("환영합니다." +
"\n입력 받은 수 까지 2의 배수인지 3의 배수인지 체크합니다!!");
System.out.print("입력: ");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt(); // 입력 값 범위 받음
int j = 2; int k = 3; // 알고자 하는 배수의 기준? 수포자 ㅠ
for (int i = 1; i <= input ; i++) {
if (i % k == 0 && i % j == 0) {
System.out.println(i + " -> " + j + " 와 " + k + "의 배수입니다."); // 공통 배수 노티
} else if (i % j == 0) {
System.out.println(i + " -> " + j + "의 배수입니다."); // j 배수 노티
} else if (i % k == 0) {
System.out.println(i + " -> " + k + "의 배수입니다."); // k 배수 노티
} else {
System.out.println(i); // 나머지는 그냥 출력.
}
}
}
1부터 입력받은 숫자 사이의 모든 수를 출력하고 2와 3의 배수 여부를 판단한다.
public static void main(String[] args) {
for (int i = 0; i < 5; i++) { // i = 행
for (int j = 0; j < 5; j++) { // j = 열
System.out.print(i+j+1);
}
System.out.println();
}
}
출력 값은 이러하다. 기존에 배열과 친하지 않아서 조금 고생을 했다.
public static void main(String[] args) {
int [][] arr = new int[5][5]; // 배열은 좌표라고 생각해라
for (int i = 0; i < arr.length; i++) { // 배열에 값을 입력
for (int j = 0; j < arr[i].length; j++) { // i = 행
arr[i][j] = i; // j = 열
}
}
for (int i = 0; i < arr.length; i++) { // 배열을 출력
for (int j = 0; j < arr[i].length; j++) { // i = 행
System.out.print(arr[j][i]); // j = 열
}
}
}
출력 값은 다음과 같다.
여기서 좀 많은 시간을 사용했다.
public static void main(String[] args) {
System.out.println("1~10까지의 수를 5번 입력 받아서 가장 많이 입력된 수를 구하세요!");
int[] arr = new int[11]; // 담을 배열 생성
for (int i = 0; i < 5; i++) {
Scanner sc = new Scanner(System.in);
System.out.print((i + 1) + "번째 수: ");
int j = sc.nextInt();
arr[j] += 1;
} // 숫자별 입력 횟수 배열로 카운트
int max = 0; // 가장 많이 입력된 숫자의 좌표를 확인
int result = 0; // 가장 많이 입력된 숫자의 좌표를 추출
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
result = i;
}
}
System.out.println("가장 많이 입력된 수는 "+result);
}
사전 캠프 코딩테스트에서 포기했던 최빈값구하기다. 배열을 사용해서 여전히 어려웠었고 정말 많은 시간을 소요한 것 같다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> team = new ArrayList<>(); // ArrayList를 생성한다.
for (int i = 0; i < 4; i++) { // 4명의 팀원을 ArrayList에 입력하고자 한다.
System.out.print("팀원 : ");
team.add(sc.nextLine()); // ArrayList에 값을 입력한다.
}
for (int i = 0; i < team.size(); i++) {
System.out.print("팀원 : "+ team.get(i)+"\n"); // ArrayList에 입력된 값들을 출력한다.
}
System.out.println("배열의 길이는 : " + team.size()); // ArrayList의 길이를 출력한다.
}
출력 값은 이러하다.
별 다른 특이사항은 없었고, ArrayList 또한 비교적 많이 사용해본 기능이라서 구현에 큰 문제는 없었다.
다만 코드를 짜는 행위와 구현을 하는 과정이 아직 익숙치 않아 숨쉬듯이 매끄럽게 되지는 않았다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int inputTime = sc.nextInt(); // 숫자를 몇 번 받을지 설정
System.out.println("=========================");
Stack<Integer> stack = new Stack<>(); // Stack을 생성
for(int i = 0; i < inputTime; i++) { // 설정한 횟수만큼
int inputNumber = sc.nextInt(); // 스캐너로 입력 받는데!
if (inputNumber == 0 ) { //조건 1
stack.pop();
} else { // 조건2
stack.push(inputNumber);
}
}
System.out.println(stack.peek()); // 제일 위에 있는 Stack 확인
}
출력 값이다.
Stack은 김장하는 것과 같다. 항아리에 가장 먼저 넣은 김치는 가장 나중에 먹을 수 있다.
반복문과 조건문을 조금 더 익숙해진 것 같다.
public static void main(String[] args) {
Queue<Integer> q = new LinkedList<>(); // 큐 생성
Scanner sc = new Scanner(System.in); // 값 받기
System.out.print("카드의 개수는 ");
int cards = sc.nextInt();
for (int i = 1; i < cards + 1; i++) { // 카드 1부터 i까지 카드 설정
q.add(i);
}
System.out.print("몇번 섞으시겠습니까?");
int shuffle = sc. nextInt();
for (int i = 0; i<shuffle; i++) { // i 번 밑장 빼기
q.add(q.poll()); // 밑장을 빼면 다시 제일 위로 올라간다.
}
System.out.println(q.peek()); // 밑장은 무슨 숫자일까?
}
출력 값은 이렇다.
Queue는 배관이다. 제일 먼저 들어간 것이 반대쪽에서 제일 먼저 나온다.
1 2 3 4 5 가 순서대로 쌓여있는데 밑장을 빼고 다시 제일 위에 보내는 작업을 7번 했다.
그러면 1 2 3 4 5 1 2 3 4 5 이말이기에 제일 밑에는 3이 위치한다.
[TIL#18] Study] 코딩 테스트 6 (0) | 2023.11.09 |
---|---|
[TIL#17] Study] 코딩 테스트 5 (0) | 2023.11.08 |
[TIL#16] Study] 코딩 테스트 4 (1) | 2023.11.04 |
[TIL#15-2] Study] 코딩 테스트 3 (1) | 2023.11.03 |
[TIL#14-1] Study] 코딩 테스트 2 (0) | 2023.11.02 |