[TIL#8] 개인 과제 Level 1

Jiwoo·2024년 4월 30일
0

내일배움캠프

목록 보기
12/65
post-thumbnail

github 연동 중 생긴 오류

IntelliJ 랑 github 연동을 하는데 구글링 한 방법을 다 써봐도 계속 같은 오류가 발생했다.
결국 챗 GPT한테 물어보니 로컬 브랜치와 리모트 브랜치 간에 충돌이 발생했다 한다.
로컬 변경 사항이 리모트 변경 사항과 충돌하여 병합이 필요하단다.

  • 병합 (Merge):
    git pull origin main --merge
    리모트 저장소의 변경 사항을 로컬 브랜치로 가져와서 병합하고 완료되면 다시 푸시할 수 있다.

  • 재베이스 (Rebase):
    git pull origin main --rebase
    로컬 변경 사항을 일시적으로 임시 저장하고, 리모트 변경 사항을 가져와서 로컬 변경 사항 위에 적용
    이후에 충돌이 발생하지 않으면 로컬 브랜치를 리모트 브랜치로 간단하게 이동시킬 수 있다.

  • Fast-forward Only:
    git pull origin main --ff-only
    리모트 변경 사항을 가져와서 로컬 브랜치를 리모트 브랜치로 빠르게 이동시킴
    이 경우, 로컬에 있는 변경 사항이 리모트 변경 사항과 충돌하지 않아야 한다.

Level 1

package main.java.calculator;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

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

        ArrayList<Integer> numbers = new ArrayList<Integer>(); // 컬렉션 타입 변수 선언 및 생성

        while (true) {
            System.out.print("첫 번째 숫자를 입력하세요: ");
            int num1 = sc.nextInt();

            System.out.print("두 번째 숫자를 입력하세요: ");
            int num2 = sc.nextInt();

            System.out.print("사칙연산 기호를 입력하세요: "); // +, -, *, /
            /* charAt(idx) : charAt 메서드는 매개변수로 char 타입으로 변환하고자하는 문자열 위치 받는다*/
            char operator = sc.next().charAt(0);

            int result = 0;

            if (operator == '+') {
                result = num1 + num2;
            } else if (operator == '-') {
                result = num1 - num2;
            } else if (operator == '*') {
                result = num1 * num2;
            } else if (operator == '/') {
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    System.out.println("나눗셈 연산에서 분모에 0이 입력될 수 없습니다.");
                    continue;
                }
            } else {
                System.out.println("기호를 잘못 입력했습니다.");
                continue;
            }

            System.out.println("결과: " + result);

            // remove 입력 시 가장 먼저 저장된 결과 삭제
            System.out.print("가장 먼저 저장된 연산 결과를 삭제하시겠습니까? (remove 입력 시 삭제) ");
            String removeInput = sc.next();
            if (removeInput.equals("remove")) {
                numbers.remove(0); // ArrayList의 첫 번째 요소 삭제
                System.out.println("가장 먼저 저장된 결과가 삭제되었습니다.");
            }
            // 연산 결과 ArrayList에 추가
            numbers.add(result);

            System.out.println("저장된 연산결과를 조회하시겠습니까? (inquiry 입력 시 조회) ");
            String inquiryInput = sc.next();
            if (inquiryInput.equals("inquiry")) {
                for(Integer i : numbers) {
                    System.out.print(i + " ");
                }
                System.out.println();
            }

            System.out.print("더 계산하시겠습니까? (exit 입력 시 종료) ");
            String exit = sc.next();
            if (exit.equals("exit"))
                break;
        }

        // 배열에 저장된 연산 결과 출력
        System.out.println("저장된 연산 결과: ");
        for(Integer num : numbers) {
            System.out.print(num + " ");
        }
    }
}

회고

과제 하루면 하겠지 하고 여유롭게 개인 공부 했더니 발등에 불 떨어졌다.
Level 1 이면 수월하게 할 줄 알았는데 중간단계 이후부터는 금방 코드가 떠오르지 않아서 당황했다.
작성된 코드를 보면 코드 이해는 되는데 처음부터 직접 코딩하기까지 생각하는 시간이 많이 필요한 것 같다.

0개의 댓글