memostack
article thumbnail
Java - Collection과 Map의 종류(List, Set, Map)
Language/JAVA 2021. 3. 9. 22:21

Collection과 Map Java의 자료구조는 크게 Collection과 Map으로 나눌 수 있음 그리고, Collection은 List와 Set, Queue로 나눌 수 있음 본 글에서는 아래 자료구조에 대한 내용을 간단히 정리한다. List: ArrayList, LinkedList, Vector, Stack Set: HashSet, LinkedHashSet, TreeSet Queue: priorityQueue, ArrayDeque Map: HashMap, LinkedHashMap, Hashtable, TreeMap Collection - List 리스트는 순서를 가지고, 원소의 중복이 허용된다는 특징이 있음 ArrayList ArrayList는 배열을 이용하여 만든 리스트이다. 기본 크기는 10이지..

article thumbnail
Java - 연산자의 종류 (증감/부호/산술/논리/비교/대입 연산자)
Language/JAVA 2021. 2. 3. 23:18

산술 연산자 +, -, *, /, %로 더하기, 빼기, 곱하기, 나누기, 나머지 몫 연산자로 나눠진다. 우리가 아는 사칙연산을 생각하면 된다. +: 더하기 -: 빼기 *: 곱하기 /: 나누기 %: 나눈 후 나머지 몫 int num = 15; System.out.println(num + 2); // 17 System.out.println(num - 2); // 3 System.out.println(num * 2); // 30 System.out.println(num / 2); // 7.5 System.out.println(num % 4); // 15/4 의 나머지는 3 17 13 30 7 3 증감 연산자 ++: 항에 1을 더한다. --: 항에 1을 뺀다. 증가/감소 연산자 위치에 따라 다른 의미를 가지는데..

article thumbnail
Java - 형 변환 (Type Conversion)
Language/JAVA 2021. 2. 3. 22:38

형 변환 변수와 값이 서로 다른 자료형의 값을 가지는 경우, 형 변환이 발생함 형 변환에는 2가지가 있다 묵시적 형 변환 Implicit type conversion 명시적 형 변환 Explicit type conversion 묵시적 형 변환 Implicit type conversion 프로그래머가 따로 명시할 필요 없이 알아서 형 변환이 일어난다. 하지만, 아래와 같은 조건이 존재한다. 1. 작은 수에서 큰 수로 형 변환이 일어남 (예시) short (2byte) -> int (4byte) int (4byte) -> long (8byte) // 작은 수에서 큰 수로 형 변환 byte byteNum = 1; int intNum = byteNum; // 형 변환 발생 System.out.println(by..

article thumbnail
Java - 자바의 자료형 Data Type (Primitive Type, Reference Type)
Language/JAVA 2021. 2. 2. 21:03

자바의 자료형 Java의 자료형에는 기본형(Primitive Type), 참조형(Reference Type) 2가지가 존재한다. 자료형은 다른 말로 Data Type이라 부르기도 함 기본형 Primitive Type 자바에서 기본적으로 제공해주는 기본 자료형으로 primitive type이라 함 example: int, double, float, char 등등 기본형 데이터 타입은 변수에 값이 직접 저장되어 스택(stack) 영역에 저장되어 있다 기본 자료형의 종류와 크기 1바이트(btye)는 8비트(bit)이다 public class Main { public static void main(String[] args) { // 정수형 byte bNum = 1; // 1byte short shortNum =..

article thumbnail
Java - 문자 자료형과 아스키코드, 유니코드(UTF-8, UTF-16)
Language/JAVA 2021. 2. 2. 20:59

char 문자 자료형 char 타입은 데이터를 저장할 때 비트의 조합으로 저장이 된다. 문자에는 각각 코드 값이 부여되어 있다. 예를 들어서, A는 65, B는 66... 아스키코드와 유니코드 문자를 표현할 때 아스키코드와 유니코드를 사용한다. 아스키(ASCII) 코드 1바이트(8bit)로 영문자, 숫자, 특수문자 등을 표현함 유니코드 영문자, 숫자, 특수문자 뿐만 아니라 한글, 한자와 같이 복잡한 언어를 표현한다. 대표적으로는 UTF-8, UTF-16이 있다 public class Main { public static void main(String[] args) { // 아스키 코드 & 유니코드 System.out.println((char) 65); // A (아스키코드) System.out.print..

article thumbnail
Java - 변수 선언 및 변수 명명 규칙
Language/JAVA 2021. 2. 2. 20:15

변수 고정되어 있지 않고, 변할 수 있는 수를 뜻 함 프로그래밍에서도 마찬가지로 정해지지 않은 값으로 사용됨 실행 도중에 계속해서 바뀔 수 있음 또한 변수는 데이터를 저장하기 위해 사용됨 변수 선언 및 값 할당 Java에서는 변수의 자료형에 맞는 타입을 사용해야 함 타입 변수; 또는 타입 변수 = 값; 과 같은 형태로 선언 public class Main { public static void main(String[] args) { // 1. 변수 선언 int number; // 변수 선언 number = 1; // 변수에 값 할당 System.out.println(number); // 2. 변수 선언 & 값 할당 int age = 29; System.out.println(age); // 3. 동시에 여러..

article thumbnail
Java - Hello World 콘솔에 출력하기
Language/JAVA 2021. 2. 2. 19:48

콘솔 출력하기 Java에서는 콘솔을 출력할 때 System.out.println() 메소드를 사용한다. 문자열을 표현할 때는 쌍 따옴표("")를 사용한다. 코드의 맨 마지막에는 세미콜론(;)을 사용한다. public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 윈도우 인텔리제이 기준으로 Ctrl + Shift + F10을 누르면 실행된다. 맥 인텔리제이는 command + Shift + r을 누르면 실행됨 자바의 실행 순서 1. 프로그래머가 코드를 작성한다. 2. 컴파일한다. (컴파일을 하면, 바이트코드가 생성됨, HelloWorld.java -> HelloWorld.c..

article thumbnail
피보나치 수열 효율적으로 풀어보기 (Java 알고리즘)
Algorithm 2020. 8. 31. 20:37

피보나치 수열 피보나치 수열을 이전 항 2개를 더한값이 현재 항이 되는 수열이다. 예를들어, A(n) = A(n-1) + A(n-2) (단, A(1) = 1, A(2) = 1 이다) 를 만족하는 수열 2 3 5 8 13 21 34 55 89 144 233 ... 프로그래밍 피보나치 수열을 풀어보는 방법은 여러방법이 있다. 그 중 아래 3가지 방법으로 풀어본다. 배열로 풀어보는 방법 배열없이 풀어보는 방법 재귀함수를 이용하는 방법 1. 배열로 풀어보는 방법 STEP 1. int 배열을 선언한다. STEP 2. A(1) = 1, A(2) = 1을 미리 초기화한다. STEP 3. 반복문을 이용하여 A(n) = A(n-1) + A(n-2)를 이용하여 계속해서 더한다. public static void main(..

article thumbnail
프로그래머스 - 가운데 글자 가져오기 (Java)
Algorithm 2020. 8. 29. 17:36

문제의 저작권은 프로그래머스(https://www.acmicpc.net/)에게 있습니다. 문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 예제 // Input abcde // Output c // Input qwer // Output we Coding - Java substring()을 이용하여, 가운데에 위치한 문자를 가져온다. public static String solution(String s) { String answer = ""; final int length = s.length(); if (0 == length % 2) { // 짝수 final in..

Integer.parseInt 와 Integer.valueOf의 차이 (JAVA)
Language/JAVA 2020. 8. 28. 19:43

목표 Integer.parseInt()와 Integer.valueOf()의 차이를 알아본다. 차이점 문자열로 된 숫자를 parseInt와 valueOf를 사용하여 타입 변환을 해보고 출력해보면 같은 결과가 나온다. public class Main { public static void main(String[] args) { String angel = "1004"; // 출력 System.out.println(Integer.parseInt(angel)); // 1004 System.out.println(Integer.valueOf(angel)); // 1004 } } 1004 1004 타입을 찍어보면, parseInt의 경우는 getClass()라는 메소드가 없어서 오류가 발생한다. 반면, valueOf는 ..

article thumbnail
백준 1330번 - 두 수 비교하기 (Java)
Algorithm/Beakjoon 2020. 8. 28. 19:32

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output // Input 5 5 // Output == Coding - Java 단순히 if문을 이용하여 두 수를 비교하여 알맞은 부등호를 출력하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void..

article thumbnail
백준 1000번 - A + B (Java)
Algorithm/Beakjoon 2020. 8. 28. 19:20

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output 3 Coding - Java 콘솔로 입력을 받을때는 Scanner 또는 BufferedReader, System.in.read()가 있다. 본 글에서는 BufferedReader 와 System.in.read()를 이용하여 문제를 풀었다. 방법 1. BufferedReader 이용 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[]..

article thumbnail
백준 Ex.10171번 - 고양이 (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 18:08

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 아래 예제와 같이 고양이를 출력하시오. 예제 // Input 없음 // Output \ /\ ) ( ') ( / ) \(__)| Coding - Java 쉬운 문제 같지만, 성급하게 풀면 이스케이프 문자를 신경쓰지 못하고 틀릴 확률이 높다. (정답률도 36.614%...) 백슬래쉬(\)를 주의해서 입력해야 함. public class Main { public static void main(String[] args) { System.out.println("\\ /\\\n" + " ) ( ')\n" + "( / )\n" + " \\(__)|"); } } 채점 결과 Reference https://www.acmic..

article thumbnail
백준 Ex.10718번 - We love kriii (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 17:54

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 예제 // Input 없음 // Output 강한친구 대한육군 강한친구 대한육군 Coding - Java 간단한 문제이고, 방법 2가지로 풀어볼 수 있다. 방법 1. System.out.println()를 2번 호출 방법 2. 개행문자(\n)를 이용 방법 3. 람다식을 이용한 방법 (비추천, 비효율적이기 때문에) // 방법 ..

article thumbnail
백준 Ex.2557번 - Hello World (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 17:48

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 Hello World!를 출력하시오. 예제 // Input // Output Hello World! Coding - Java 프로그래밍을 처음 배우면 가장 먼저 만들어보는 프로그램으로, 단순히 표준 출력을 이용하여 Hello World!를 찍어주면 된다. public class Main { public static void main(String[] args) { System.out.println("Hello World!"); } } 채점 결과 Reference https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acm..

article thumbnail
Java 의 주석 (한 줄 주석, 여러줄 주석, 문서 주석)
Language/JAVA 2020. 5. 29. 14:59

자바의 주석 주석은 코드에 영향을 미치지 않는 코드를 말한다. (즉, 컴파일러가 컴파일하지 않고 무시하고 넘어감) Java의 주석에는 3종류가 있다. 한 줄 주석 // 를 이용한다. public class HelloWorld { public static void main(String[] args) { String comment = "Hello, Java!"; // 이건 한줄 주석 } } 여러 줄 주석 /* */ 를 이용한다. public class HelloWorld { public static void main(String[] args) { /* 이건 여러줄 주석 String greet = "Hello, World!"; System.out.println(greet); System.out.println(..

article thumbnail
자바(JAVA)의 개념 및 특징 정리
Language/JAVA 2020. 5. 29. 14:45

프로그래밍이란? 프로그래밍: 컴퓨터에게 일을 시키기 위해 프로그램을 만드는 행위 컴파일: 사람이 이해할 수 있는 고급 언어를 컴퓨터가 이해할 수 있는 기계어로 바꿔주는 일을 뜻 함 컴파일러: 컴파일을 할 수 있는 프로그램 자바의 탄생 1995년 썬 마이크로시스템즈에서 개발한 객체지향 언어 C/C++ 문법을 기본으로하여 개발함 JAVA의 특징 플랫폼에 독립적이다. 컴파일된 동일한 코드는 JVM만 설치되어 있다면, 운영체제에 상관없이 실행할 수 있다 객체지향 프로그램으로 유지보수와 확장성이 좋다. 풍부한 라이브러리가 제공되어 오픈소스와 연동이 쉽다. JVM의 GC(Garbage Collector)에 의해 사용되지 않는 메모리를 자동으로 정리해준다.