Java 코딩테스트 개념(상)

이윤화·2025년 9월 22일

Java

목록 보기
1/10
post-thumbnail

1. 기본 입출력

import java.util.Scanner;

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();           // 정수 입력
String str = sc.next();         // 문자열 입력 (공백 제외)
String line = sc.nextLine();    // 한 줄 전체 입력

System.out.println("출력");     // 출력 후 줄바꿈
System.out.print("출력");       // 출력만

2. 자료형과 형변환

int a = 10;
long b = 100L;
double c = 3.14;
char ch = 'A';
boolean flag = true;

// 형변환
String numStr = "123";
int num = Integer.parseInt(numStr);
String str = String.valueOf(num);

3. 배열

// 1차원 배열
int[] arr = new int[5];
int[] arr2 = {1, 2, 3, 4, 5};

// 2차원 배열  
int[][] matrix = new int[3][4];
int[][] matrix2 = {{1,2}, {3,4}};

// 배열 길이
arr.length;
matrix.length;      // 행의 개수
matrix[0].length;   // 첫 번째 행의 열 개수

4. 문자열 처리

String str = "Hello World";

str.length();                    // 길이
str.charAt(0);                   // 특정 위치 문자
str.substring(0, 5);             // 부분 문자열
str.indexOf("lo");               // 문자열 위치 찾기
str.split(" ");                  // 문자열 분할
str.equals("Hello World");       // 문자열 비교
str.toLowerCase();               // 소문자 변환
str.toUpperCase();               // 대문자 변환

// StringBuilder (문자열 조작이 많을 때)
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
String result = sb.toString();

5. 반복문과 조건문

// for문
for(int i = 0; i < 10; i++) {
    // 코드
}

// 향상된 for문
for(int num : arr) {
    // 코드
}

// while문
while(condition) {
    // 코드
}

// if문
if(condition) {
    // 코드
} else if(condition2) {
    // 코드
} else {
    // 코드
}

6. 컬렉션(Collection)

import java.util.*;

// ArrayList (동적 배열)
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.get(0);
list.size();
list.remove(0);

// HashMap (키-값 저장)
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 1);
map.get("key");
map.containsKey("key");

// HashSet (중복 제거)
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.contains(1);

7. 정렬

import java.util.Arrays;
import java.util.Collections;

// 배열 정렬
int[] arr = {3, 1, 4, 1, 5};
Arrays.sort(arr);                    // 오름차순

// 리스트 정렬
ArrayList<Integer> list = new ArrayList<>();
Collections.sort(list);              // 오름차순
Collections.sort(list, Collections.reverseOrder()); // 내림차순

// 커스텀 정렬
Arrays.sort(arr, (a, b) -> b - a);   // 내림차순

8. 수학 관련

Math.max(a, b);          // 최댓값
Math.min(a, b);          // 최솟값
Math.abs(a);             // 절댓값
Math.pow(2, 3);          // 거듭제곱 (2^3)
Math.sqrt(16);           // 제곱근
Math.ceil(3.2);          // 올림
Math.floor(3.8);         // 내림

9. 자주 사용하는 패턴

// 최댓값, 최솟값 초기화
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;

// 무한대
int INF = Integer.MAX_VALUE;

// 2차원 배열 순회
for(int i = 0; i < n; i++) {
    for(int j = 0; j < m; j++) {
        // arr[i][j] 처리
    }
}

// 방향벡터 (상하좌우)
int[] dx = {-1, 1, 0, 0};
int[] dy = {0, 0, -1, 1};

0개의 댓글