랠리

JAVA랠리 오답

별초롱언니 2025. 5. 20. 17:26

힌트: 상수는 final 키워드를 사용합니다. 예: final int MAX = 100;
public class Main {
    public static void main(String[] args) {
        final double PI = 3.14159;
        System.out.println(PI);
    }
}

📍오답체크

  • double PI = 3.14159; 

✅ 개념 정리

  • final은 상수 선언에 사용.
  • 한 번 값을 넣으면 다시 변경 불가.
  • 상수 이름은 보통 대문자로 작성.
    예: final double PI = 3.14;

 


public class Main {
	public static void main(String[] args) {
		String str = "123";
		int num = Integer.parseInt(str);
		System.out.println(num);
	}
}

📍 오답체크

  • int num = (int) str; 

✅ 개념 정리

  • (int)는 기본형끼리만 형변환 가능.
  • String → int는 타입이 완전히 달라서 형변환 불가.
  • 문자열 안의 숫자를 정수로 바꾸려면 Integer.parseInt() 사용!

힌트: 문자열 비교는 == 대신 equals()를 사용합니다.
public class Main {
    public static void main(String[] args) {
        String id = "admin";
        if (id.equals("admin")) {
        	System.out.println("접속 성공");
        } else {
        	System.out.println("접속 실패");
        }
    }
}

📍 오답체크

  • if (id.equals(id) 

✅ 개념 정리

  • equals()는 문자열의 내용을 비교할 때 사용.
  • id.equals("admin") → id 안의 값이 "admin"과 같은지 비교함.
  • id.equals(id) → 항상 true (자기 자신 비교).

힌트: 점수를 10으로 나눈 값으로 등급을 매깁니다.
public class Main {
    public static void main(String[] args) {
    	int score = 91;
        
        switch(score/10) {
        case 10:
        case 9: 
        	System.out.println("A"); 
        	break;
        case 8: 
        	System.out.println("B"); 
        	break;
        case 7: 
        	System.out.println("C"); 
        	break;
        case 6: 
        	System.out.println("D"); 
        	break;
        default: 
        	System.out.println("F"); 
        	break;
        }
    }
}

📍 오답체크

  • switch(score)

✅ 개념 정리 (switch로 점수 등급 나누기)

  • switch(score)는 정확한 점수 하나만 비교 가능함 → case 91: 이런 식으로 전부 다 적어야 하므로 비효율적.
  • 점수를 범위(10090, 8980 등) 로 처리하고 싶으면, switch(score / 10)처럼 10으로 나눠서 몫으로 비교해야 함.
  • 예: 91 / 10 = 9 → case 9:에서 처리 가능!

✅ case에 들어가는 숫자는?

  • score / 10의 결과값이 들어옴 → score = 91이면 case 9:
  • 범위별 case 예시:
점수 score / 10 case값
100 10 case 10
95 9 case 9
82 8 case 8
74 7 case 7
65 6 case 6
59 5 default

힌트: 문자열 switch는 Java 7 이상에서 사용 가능
public class Main {
    public static void main(String[] args) {
        int a = 6, b = 3;
        String op = "*";
        switch (op) {
            case "+": System.out.println(a + b); break;
            case "-": System.out.println(a - b); break;
            case "*": System.out.println(a * b); break;
            case "/": System.out.println(a / b); break;
            default: System.out.println("잘못된 연산자");
        }
    }
}

📍오답체크

  • System.out.println(a*b); 문제에서 원하는 연산자를 이용하질 못했다 

힌트: sum += i 를 이용해 누적합을 구하세요.
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 5; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

📍오답체크

  • int sum = 0; / sum += i; 을 제대로 작성하질 못했다. .

힌트: while문은 조건이 참이면 반복합니다. 초기값과 증가식을 설정하세요.
public class Main {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 5) {
            System.out.println(i);
            i++;
        }
    }
}

📍오답체크

  • while문을 처음에 어? 어떻게 쓰더라 하고 제대로 작성하지 못했음.. 

 


public class Main {
    public static void main(String[] args) {
        boolean condition = false;
        do {
            System.out.println("실행됨");
        } while (condition);
    }
}

📍오답체크

  • while(true) {System.out.println("실행안됨"); break;}

public class Main {
    public static void main(String[] args) {
        int i = 0;
        while (i < 10) {
            i++;
            if (i % 2 != 0) continue;
            System.out.println(i);
        }
    }
}

📍오답체크

  • while (i <=10) {if (i % 2 == 0) {System.out.println(i);continue;}} 무한로딩경험중.. 

public class Main {
    public static void main(String[] args) {
    	int[] numbers = {10,20,30};
    	System.out.println(numbers[0]);
    }
}

📍오답체크

  • int numbers = {10,20,30}; 똑같은 실수의 반복 ! 대괄호를 빼먹음 !!!!

배열 길이는 length 속성을 사용하고, 마지막 인덱스는 length - 1 입니다.
public class Main {
    public static void main(String[] args) {
        String[] fruits = {"apple", "banana", "cherry"};
        System.out.println(fruits[fruits.length - 1]);
    }
}

📍오답체크

  • System.out.println(fruits[2]); 맞는줄 알았으나.. length-1을 이용해서 풀어야하는 문제..

힌트: arr[1] = 10; 처럼 인덱스를 활용해 값을 수정할 수 있습니다.
public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        arr[1] = 10;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

📍오답체크

인덱스 값을 활용해서 값을 수정할 수 있다는 사실을 몰랐다.. 기억하자 


public class Main {
    public static void main(String[] args) {
        int[] numbers = {5, 10, 15};
        int index = 3;
        if (index >= 0 && index < numbers.length) {
            System.out.println(numbers[index]);
        } else {
            System.out.println("인덱스가 범위를 벗어났습니다.");
        }
    }
}

📍오답체크

  • int[] numbers = {5,10,15};
  • for (int i = 0; i < numbers.length; i++) {if (i >= 0 && i < numbers.length) { System.out.println(numbers[i]);} else {System.out.println("인덱스가 범위를 벗어났습니다.");}}
  • 출력 가이드를 출력 할 수가 없어서 기본 범위 출력물로 입력하였다.

public class Main {
    public static void main(String[] args) {
        int[][] matrix = {{1, 2, 3}, {4, 5, 6}};
        System.out.println(matrix[1][2]);
    }
}

public class Main {
    public static void main(String[] args) {
        int[][] data = {{1, 2}, {3, 4}, {5, 6}};
        int sum = 0;
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data[i].length; j++) {
                sum += data[i][j];
            }
        }
        System.out.println(sum);
    }
}

 

'랠리' 카테고리의 다른 글

20250519  (0) 2025.05.19
랠리오답  (0) 2025.05.11
한교야 공부하자  (1) 2025.05.09
랠리 답  (0) 2025.05.09
JS랠리2  (0) 2025.04.15