[코테] 자바 기초 문법들

코테

목록 보기
1/4

인공지능이 발달했다 해도, 코테는 당연히 있기 때문에 기본적인 문법 및 알고리즘은 당연히 알고 있어야 한다. 하지만 기억이 하나도 안나기 때문에 모르는 것들 적어가면서 다시 복습하고자 한다.

https://velog.io/@coldbottle/Java%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B8%B0%EB%B3%B8%EA%B8%B0-%EC%A0%95%EB%A6%AC

이분 정리 잘햇드라

입출력

  1. 보통은 Scanner를 사용하지만, 코테 할때는 대규모 데이터를 입력받거나 출력할 때가 있다. 이때 사용하는 게 BufferedReader와 BufferedWriter다.
import java.io.BufferedReader;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 
       

으로 정의하고,
String s = br.readLine();
으로 읽으며

	bw.write(sum+"\n");
       }
       bw.flush();
       bw.close();

꼴로 된다.
조심해야 할 부분은 readLine을 통해서는 String으로만 읽을 수 있어서
Integer.parseInt()를 해줘야한다.

bw write는 보통 안쓰고, StringBuilder로 형식 정해서 print한다.

public class Main {
	public static void main(String[] args) {
 	StringBuilder sb = new StringBuilder(); // 선언
     
     sb.append("출력\n"); // 출력 내용 추가
     
     System.out.println(sb); // 출력
 }
}
  1. 공백을 기준으로 받을때는 Tokenizer를 사용해준다.
    import java.util.*로 해주고
import java.io.*;
import java.util.*;
import java.math.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        BigInteger sum = BigInteger.ZERO; // 초기값 0

        while (st.hasMoreTokens()) { // 토큰이 남아있는 동안 반복
            sum = sum.add(new BigInteger(st.nextToken()));
        }

        bw.write(sum.toString());
        bw.flush();
        bw.close();
    }
}

만약 StringTokenizer로 여러 줄을 받을 거면 다시 선언해줘야 한다.


        // 첫 번째 줄 입력 (생년월일)
        StringTokenizer st = new StringTokenizer(br.readLine());
        int birthYear = Integer.parseInt(st.nextToken());
        int birthMonth = Integer.parseInt(st.nextToken());
        int birthDay = Integer.parseInt(st.nextToken());

        // 두 번째 줄 입력 (기준 날짜)
        st = new StringTokenizer(br.readLine());

그리고 날짜 관련된 라이브러리는 java.time.* 가지고와서 LocalDate로 만들어주자.

BigInteger

자바는 BigInteger를 지원한다. 파이썬은 한방에 되는데... import java.math.BigInteger 임포트하자.

import java.math.BigInteger;

BigInteger bigNumber = new BigInteger("10001");

System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));
System.out.println("뺄셈(-) :" +bigNumber1.subtract(bigNumber2));
System.out.println("곱셈(*) :" +bigNumber1.multiply(bigNumber2));
System.out.println("나눗셈(/) :" +bigNumber1.divide(bigNumber2));
System.out.println("나머지(%) :" +bigNumber1.remainder(bigNumber2));

BigInteger bigNumber = BigInteger.valueOf(100000); //int -> BigIntger

int int_bigNum = bigNumber.intValue(); //BigIntger -> int
long long_bigNum = bigNumber.longValue(); //BigIntger -> long
float float_bigNum = bigNumber.floatValue(); //BigIntger -> float
double double_bigNum = bigNumber.doubleValue(); //BigIntger -> double
String String_bigNum = bigNumber.toString(); //BigIntger -> String

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("1000000");
		
int compare = bigNumber1.compareTo(bigNumber2);

BigInteger bigNumber1 = new BigInteger("50");
BigInteger bigNumber2 = new BigInteger("1000");
BigInteger bigNumber2_same = new BigInteger("1000");

int compare = bigNumber1.compareTo(bigNumber2);
System.out.println("작은 수를 큰 수랑 비교 할 때 : " + compare); // -1
int compare2 = bigNumber2.compareTo(bigNumber2_same);
System.out.println("2개의 수가 같을 때 : " + compare2); // 0
int compare3 = bigNumber2.compareTo(bigNumber1);
System.out.println("큰 수를 작은 수랑 비교할 때 : " + compare3); // 1 

0개의 댓글