분류 전체보기 (55) 썸네일형 리스트형 char형 연산 백준 1194번 문제에서 char형을 다루면서 생긴 의문이다.System.out.println('a'-'f'); --> -5System.out.println('b'-'b'); --> 0아스키코드 값이 연산 되는 것이라고 짐작은 했지만 정확하게 알고 넘어가기 위해 char연산에 대해 정리한다. class exam{public static void main(String[] args){char a1 = 'a'; //--1char a2 = a1; //--2 int i = a1 + 1; //--3char a3 = (char)(a1 + 2); //--4a2++; //--5 System.out.print( i +" \t" + a2 + "\t" + a3); } 결과값98 b c 1) a1에는 문자 'a'의 코드값인 9.. 비트연산자 백준 14889,1194번을 풀면서 비트연산으로 다양한 알고리즘을 구현할 수 있다는것을 알게 되었다.비트연산자에 대해 알아본다. 컴퓨터는 2진수를 기반으로 데이터를 저장하고, 연산한다.2진수는 0과 1로 표현되는 수로, int number = 95를 저장했다면 컴퓨터에는 다음과 같이 저장된다.0 0 0 1 0 1 1 1 1 1 512 256 128 64 32 16 8 4 2 1 한 숫자는 데이터를 표현하는 단위로 비트라고 불리고, 비트가 8개 모이면 1byte가 된다. *java에서 int는 4byte로 32bit를 가진다. 시프트연산자n 필드와 변수의 차이,선언위치,초기화 백준 14503을 풀면서 변수의 초기화에 대해서 궁금했다.어떨때에는 초기화를 꼭해주어야 하고, 어떨때에는 초기화를 해주지 않아도 되는게 헷갈렸다.필드와 변수의 개념에 대해 정확히 정리해본다. 클래스 = 필드 + 메소드 + 생성자 객체 = 필드 + 메소드로 구성되어 있다. 개발자의 편의에 따라 필드는 클래스의 내부 멤버라해서 멤버변수라고 부르기도하고 전역변수라고도 한다.변수는 지역변수라고 한다. package BFS; public class examexam { static int ans; //--> examexam"클래스"안의 필드 : 초기화 생략가능public static void main(String[] args) { int num; //--> main "메소드"의 지역변수 : 초기화 필수System... char형 int형으로 변환 백준 2667문제를 풀다가 알게된 사실Scanner보다 BufferedReader가 다루긴 까다로워도 속도가 빠르다는 이야기를 접한 후로 부터는 BufferedReader를 사용하고 있다. 이제까지는 입력 숫자들이 공백으로 구분되어져 있어서 무난하게 써왔지만이번문제에서는 숫자간 공백이 존재하지 않았다. 항상 BufferedReader로 한번에 읽고, readLine()함수로 줄마다 읽어오고,StringTokenizer객체를 이용해서 공백으로 문자를 구분하여 입력값을 받아온 나로써는 입력값 받아오기부터 적잖이 당황을 했다.. String으로 받아온 값들을 charAt()함수를 써서 가져왔지만 int형으로 변환이 어려웠다.검색끝에, char형에서 '0'을 빼면 된다는 것을 알아냈다.char-'0' 을 이용하.. Scanner와 BufferedReader 백준 1325번 문제에서 시간 초과의 문제로 고민하다가 Scanner와 BufferedReader의 차이점에 대해 알게 되었다. Scanner 다양한 타입의 데이터를 "그때 그때" 읽어 오는 객체-Space,Enter를 모두 경계로 인식 -> 입력받은 데이터 가공하기 쉽다.-원하는 타입으로 입력 데이터를 반환해주는 next*()메서드를 사용해서 입력 데이터를 읽어와 사용 BufferedReader데이터를 "한번에" 읽어들여 버퍼라는 공간에 담아 놓고 사용하는 객체-Enter만 경계로 인식하여 받은 데이터를 String으로 고정 -> 문자 외의 입력 타입은 형변환이 필요-readLine()메소드로 입력받은 문자를 받아올 수 있다.-예외처리 필요 ( IOException )-여러 데이터의 값을 한줄씩 읽어와.. 향상된 for문 알고리즘 공부를 하다가 향상된 for문에 대해 보다 정확하게 개념정리를 할 수 있었다. 먼저 향상된 for문의 개념이다.향상된 for문 ?for(타입 변수명 : 배열 또는 컬렉션) { 반복할 문장; } 변수의 타입은 배열 또는 컬렉션의 타입과 같아야 한다.향상된 for문은 배열 또는 컬렉션에 저장된 값을 순서대로 읽어서 변수에 저장하고 -> 반복할 문장이 있다면 실행하고 -> 변수에 모두 저장하게 되면 반복문에서 빠져나간다. public class for_each {public static void main(String[] args) {int arr[] = new int[3];for(int i=0; i 15장 List 컬렉션 List 컬렉션List 인터페이스를 구현한 컬렉션을 말한다. 특징?-인덱스로 관리-중복해서 객체 저장 가능하다.-각각의 인덱스에 "객체의 번지"가 저장이 된다. 구현클래스ArrayList , Vector ,LinkedList 주요 메소드-객체 추가boolean add(E e) 주어진 객체를 맨 끝에 추가void add(int index, E element) 주어진 인덱스에 객체를 추가set(int index, E element) 주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈-객체 탐색boolean contains(Object o) 주어진 객체가 저장되어 있는지 여부E get(int index) 주어진 인덱스에 저장된 객체를 리턴isEmpty() 컬렉션이 비어 있는지 조사 비어있다면 true, 비어있지.. 15장 컬렉션 프레임워크 컬렉션 : 객체를 모아둔 것프레임워크 : 정형화된 체계적인 프로그래밍 방식컬렉션 프레임워크 : 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 컬렉션 프레임워크란,- java.util패키지에는 자료를 다룰 수 있는 자료구조 클래스가 다수 존재한다. 자료구조란 자료를 저장할 수 있는 구조를 말하고, 자료구조 클래스들을 컬렉션 프레임워크라고 한다.-컬렉션 프레임워크라는 것은 다른말로 컨테이너라고도 부른다 (값을 담는 그릇이라는 의미)-자료구조형 안에서는 객체의 주소만을 관리한다 => 데이터를 관리하는 것이 아니라 데이터가 있는 곳의 주소를 관리 배열의 문제점-저장할 수 있는 객체 수가 배열을 생성할 때 결정-> 불특정 다수의 객체를 저장할 수 없다.-객체를 삭제했을 때 해당 인덱스가 비게 된다. 이 두가지의 .. 14장 람다식 람다식이란?y=f(x) 형태의 함수로 구성된 프로그래밍의 기법이다.함수적 프로그래밍 기법은 y=f(x)와 같이 데이터를 매개값으로 전달하고 결과를 받는 코드를 말한다.함수적 프로그래밍 기법을 사용하면 좋은점 2가지가 있다.1) 대용량 데이터의 처리에 유리하다.데이터의 객체를 생성한 후에 처리하는것 보다 데이터를 바로 처리하는 것이 속도에 유리하다.또한 멀티 코어 CPU에서 데이터를 병렬 처리하고 취합할 때 객체보다는 함수가 유리하다.2) 이벤트 지향 프로그래밍(이벤트가 발생하면 핸들러 함수 실행)에 적합하다.반복적인 이벤트 처리는 핸들러 객체보다는 핸들러 함수가 적합하다. 자바는 람다식을 언어 차원에서 제공하여 코드를 간결하게 하는데 대표적으로 익명함수를 생성하기 위한 식에서 람다식을 볼 수 있다.(타입.. Scanner의 메소드 정리 백준 3184문제를 풀면서 Scanner 메소드에 대해 의문이 생겨서 정리를 해보았다. next() : 공백(띄어쓰기)을 기준으로 문자열 입력 받는다. nextLine(): 한줄(개행문자, 엔터)을 기준으로 입력을 받는다. nextInt(): 공백(띄어쓰기)을 기준으로 int값 읽어온다.hasNext(): 입력된 토큰이 있으면 true 없으면 false를 반환 토큰에 개행문자만 남아있는 경우에는 false를 반환하지만 개행문자는 그대로 남아있다. * next()와 nextLine()의 차이next()는 개행문자(/n)을 무시하고 문자열을 입력 받아온다.nextLine()은 개행문자(/n)까지 읽어서 문자열을 입력 받아온다. 출력값 >> 입력값은 초록색 부분으로 다음과 같다.6 6...#...##v#.#v.. 이전 1 2 3 4 5 6 다음