본문 바로가기
TIL

220304

by 김비누! 2022. 3. 4.

📝자바 for(object : list)

향상된 for문이라고 부른다. 배열이나 ArrayList의 값을 사용할 수는 있지만 수정할 수는 없다.
ArrayIndexOutOfBoundsException 를 피할 수 있다고 한다.

    int[] a = new int[N];

    for(int i : a) {
        i = sc.nextInt();
        System.out.println(i + " ");
    }
    sc.close();
    System.out.print("\n"+a[0]);

입력

5
1 2 3 4 5

출력

1 2 3 4 5
0

향상된 for 문 안에서는 i를 사용할 수 있지만 실제로는 배열의 값이 수정되지 않는 것을 확인할 수 있다.

참고

[Java] 향상된,개선된 for 문 개념,문법 총 정리
for(Object : List) 구문

💻백준 1316: 그룹 단어 체커 (자바)

백준 1316


    Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int cnt = 0;

    for (int i = 0; i < N; i++) {
        String str = sc.next();
        String tmp = "";
        boolean gwTrue = true;    /* 플래그를 초기화해줌 */

        String[] strSplit = str.split("");

        /* 맨 앞 또는 전의 값과 다르면 tmp에 추가*/
        /* ex. aabbbaaac -> abac 추가됨 */
        for (int j = 0; j < strSplit.length; j++) {
            if (j == 0 || !strSplit[j - 1].equals(strSplit[j])) {    
                tmp += strSplit[j];
            }
        }

        /* 추가된 값을 검사하여 같은 값이 있을 경우 그룹단어 아님*/
        for (int k = 0; k < tmp.length(); k++) {
            if (tmp.indexOf(tmp.charAt(k)) != k) {
                gwTrue = false;
                break;
            }
        }

        if (gwTrue)
            cnt++;

    }

    System.out.println(cnt);

입력

2
hhhappy
yyyya

출력

2

💻백준 9020: 골드바흐 (자바)

백준 9020
isPrime 메소드는 소수인지 확인하여 boolean으로 리턴해줌

static boolean isPrime(int n) {
    if (n == 1) /* 1은 소수가 아니므로 제외 */
        return false;
    else if (n == 2)
        return true;

    /* 2부터 루트(tmp)+1 까지 */
    for (int j = 2; j < (int) Math.sqrt(n) + 1; j++)
        if (n % j == 0)
            return false;

    return true;
}

n/2부터 시작하여 isPrime 메소드로 검사
18일 경우 (9, 9) -> (8,10) -> (7, 11) 순서로 진행되며 7 11 이 출력되고 for문을 나가게 된다.

    Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();

    for (int i = 0; i < T; i++) {
        int n = sc.nextInt();
        int tmp = n / 2;

        for (int j = 0; j < n / 2; j++) {
            if (isPrime(tmp - j) && isPrime(tmp + j)) {
                System.out.println(tmp - j + " " + (tmp + j));
                break;
            }
        }
    }

☕️ 잡담

할 수 없는 걸 내 문제라고 생각하지 않기!(ㅜ)
학원은 옮기지 않기로!
백준 좀 할만해지면(골드1~2 ? 지금은 실버5 🤣) 프로그래머스로 코테 준비 할것🌟

'TIL' 카테고리의 다른 글

220310  (0) 2022.03.10
220307: 자바 배열  (0) 2022.03.07
220303: 자바 가위바위보  (0) 2022.03.03
220302: JAVA 클래스, 생성자  (0) 2022.03.02
220228: JVM 개념, JAVA method 개념  (0) 2022.02.28

댓글