scanner 로 입력받기
Scanner sc= next Scanner(System.in);
sc.next();
sc.nextLine();
next() : 띄어쓰기 구분해서 한 word 만 받을 때 / 개행문자 무시
nextLine() : 한 줄 전체를 받을때 /개행문자까지를 한줄로 인식하지만 개행문자는 버림
nextXXX() 메서드
nextInt(), nextFloat(), nextByte(), nextShort(), nextDouble(), nextLong(), next()입니다.
주의 scanner 에서 nextXXX() method 다음에 nextLine() 쓸때 한번 더 받아주깅
이유 :
Scanner 클래스에서 7개의 nextXXX() 메서드 중 하나 다음에 nextLine() 메서드를 호출하면 nextLine()은 콘솔에서 값을 읽지 않고 커서가 콘솔로 들어오지 않고 해당 단계를 건너뛴다.
이 문제는 BufferReader 클래스에서는 발생하지 않고 , 스캐너 클래스에서만 발생합니다. nextXXX() 메서드가 줄 바꿈 문자를 무시하고 nextLine()이 첫 번째 줄 바꿈 문자까지만 읽기 때문이다.
nextXXX()와 nextLine() 사이에 nextLine() 메서드를 한 번 더 호출하면 nextLine()이 개행 문자를 소비하기 때문에 이 문제가 발생하지 않습니다.
BufferReader로 입력받기
BufferedReader bf = new BufferedReader(new InputStreamReader(System.*in*));
bf.readLine() // 개행 문자는 읽지 않음```
출력시 사용하는 BufferedWriter
자바에서 출력할 때는 system.out.print 대신에 BufferedWriter를 사용한다.
BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.*out*));`
bw.write("hello");
bw.flush(); //bw.write() 는 콘솔에 출력하는 것이 아니라 버퍼에 저장해둠. 그래서 bw.flush()로 비워줘야함
bw.close() //다 사용했으면 닫아주기
Java stack 라이브러리 사용법
Stack<Integer> stack2= new Stack<Integer>();
stack.peek() : top 알 수 있음
stack.push()
stack.empty() : 비었을 시 1
stack.size()
stack.pop()
무언가 순차적으로 실행이 되는데 "마지막"의 것이 의미를 가진다면 Stack을 사용하자!!
자료구조(큐, 덱)
1. 큐
큐는 어떤 자료형을 순서대로 사용해야 할 때 쓴다. (FIFO)
[begin - end)
ex ) BFS 알고리즘에서 유용하게 쓰이니 기억!!
//큐 라이브러리 사용 방법
Queue<Integer> queue2= new LinkedList<>();
pop : queue2.offer
push : queue2.poll
front : queue2.peek
empty : queue2.isEmpty // empty 이면 true
remove(첫번째 값 제거) : queue2.remove()
clear : queue2.clear //초기화
2. 덱
양끝에서만 자료를 넣고 양 끝에서 뺄 수 있는 자료 구조
마찬가지로 BFS에서 쓰임