알고리즘 문제 풀면서 정리

배열 내부 특정 요소 갯수

Scanner sc = new Scanner(System.in);
List<String> numbers = new ArrayList<>(Arrays.asList(sc.nextLine().split(" ")));
int count = Collections.frequency(numbers, "1");

정렬

  • Arrays.sort(배열명)
    • import java.util.Arrays;
    • 최소값부터 최대값으로 정렬됨
    • 최소: a[0], 최대: a[a.length-1]

BufferedReader / BufferWriter

  • 입출력 효율이 Scanner보다 좋음

  • BufferedReader

    • 엔터만 경계로 인식

    • 받은 데이터가 String으로 고정

    • 사용법

      // 콘솔에서 입력
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      
      // 형변환
      int num = Integer.parseInt(br.readLine());
      br.close();	// 입출력이 끝난 후 달아주기
    • 공백 단위로 데이터 나눠 받기

      // 첫번째 방법
      StringTokenizer st = new StringTokenizer(s);//StringTokenizer인자값에 입력 문자열 넣음 int a = Integer.parseInt(st.nextToken()); //첫번째 호출
      int b = Integer.parseInt(st.nextToken()); //두번째 호출
      // 두번째 방법
      String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음
  • BufferWriter

    • 개행문자를 넣어줘야 줄바꿈이 됨

    • 사용법

      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      bw.write("hello\n"); // 출력
      bw.newLine();	// 개행 즉 엔터 역할
      bw.write("I am writing\n");	// 개행과 함께 출력
      bw.flush();	// 남아있는 데이터를 모두 출력
      bw.close();	// 스트림
  • 예제

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.StringTokenizer;
    
    public class Main {
    	public static void main(String[] args) throws NumberFormatException, IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    		int n = Integer.parseInt(br.readLine());
    		StringTokenizer st;
    		for(int i=1;i<=n;i++) {
    			st = new StringTokenizer(br.readLine());
    			bw.write((Integer.parseInt(st.nextToken()))+(Integer.parseInt(st.nextToken()))+"\n");
    		}
    		br.close();
    		bw.flush();
    		bw.close();
    	}
    }

BigInteger

  • 문자열 형태로 이루어져 있어 숫자의 범위가 무한하기에 어떠한 숫자이든지 담을 수 있음
  • 사용법
Scanner sc = new Scanner(System.in);
		
BigInteger one = new BigInteger(sc.next());
BigInteger two = new BigInteger(sc.next());
System.out.println("덧셈(+) :" +one.add(two));
System.out.println("뺄셈(-) :" +one.subtract(two));
System.out.println("곱셈(*) :" +one.multiply(two));
System.out.println("나눗셈(/) :" +one.divide(two));
System.out.println("나머지(%) :" +one.remainder(two));

문자열

  • String chk = sc.next();
    • chk에 문자열이 저장됨
  • chk.charAt(j);
    • chk에서 j번째 문자를 반환

소수점

  • String.format("%.3f",cnt);
    • 반올림하여 소수점 셋째자리까지 표현함
  • Math.round(cnt*1000)/1000.0
    • 반올림하여 소수점 셋째 자리까지 표현함
    • 소수점이 0이면 표현 못함

좋은 웹페이지 즐겨찾기