memostack
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
1. 생성자 대신 정적 팩터리 메소드를 고려하라 (Effective JAVA)
Study/Effective JAVA 2020. 7. 27. 21:45

인스턴스를 얻는 방법 전통적인 방법은 public 생성자(constructor) 정적 팩토리 메소드(static factory method)로 부터 제공 받음 그 클래스의 인스턴스를 반환하는 단순한 정적(static) 메소드 '정적 팩토리 메소드'는 '디자인 패턴'에서의 '팩토리 메소드(Factory Method)'와 다르다. 또한, 디자인 패턴 중에 이와 일치하는 패턴은 없다. 정적 팩토리 메소드의 예 메소드 설명: 기본 타입(primitive type)인 boolean 값을 받아 Boolean 객체 참조로 변환 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } Static Factory Method..

article thumbnail
Design Pattern - Factory Method Pattern (팩토리 메소드 패턴)
Study/Design Pattern 2020. 6. 7. 22:38

Factory Method Pattern 팩토리 메소드 패턴은 '객체'와 '객체 생성 클래스'를 따로 분리하는 디자인 패턴이다. 객체 생성 클래스가 따로 분리되어 있어서, 객체 생성 변화에 유연하게 대비할 수 있다. 팩토리 메소드 패턴을 이용하기 위해서는 Strategy Pattern과 Template Pattern의 개념을 아는 것이 좋다. (자주 사용됨) 예제 요구사항 게임 아이템을 만드는 아이템 생성자를 만든다. 아이템의 정보는 DB에 있다. 아이템 불법 생성을 막기 위해, 아이템 생성 로그를 남긴다. 아이템을 상속받아 여러개의 세부 아이템(물약, 검, 갑옷 등등)을 구현한다. 아이템 생성자 public abstract class ItemCreator { public Item create() { /..

article thumbnail
Design Pattern - Template Method Pattern (템플릿 메소드 패턴)
Study/Design Pattern 2020. 6. 7. 20:16

Template Method Pattern 템플릿 메소드 패턴은 일정한 구조의 프로세스를 가진 경우, 사용하기 좋은 디자인 패턴 코드의 중복을 줄일 수 있고 유지보수하기에도 편리함. 일정한 구조의 프로세스? 특정 알고리즘이 A -> B -> C 와 같이 항상 A 작업을 수행하고, B작업, C작업을 수행한다면, 각 작업들을 메소드로 구현한다. A -> B -> C 순으로 실행되도록 실행 메소드를 구현한다. (아래 수도코드 참고) func doA: // A 로직 수행 func doB: // B 로직 수행 func doC: // C 로직 수행 func doSomething: doA doB doC 예제 요구사항 계정 로그인을 한다. 로그인의 동작 순서는 아래와 같다. 사용자의 아이디, 비밀번호 복호화 유효한 아..

article thumbnail
Design Pattern - Strategy Pattern (스트래티지 패턴)
Study/Design Pattern 2020. 6. 7. 17:21

스트래티지 패턴 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴 행위(Behavior)들을 캡슐화하여 동적으로 자유롭게 바꿀 수 있는 패턴 예제 요구사항 게임 케릭터와 무기를 생성하여, 케릭터가 무기를 쥘 수 있음. 무기의 종류 칼 (Sword) 총 (Gun) 무기의 행위 공격 (Attack) 케릭터가 들고 있는 무기는 변경이 자유롭게 가능해야 함. 무기 만들기 public interface Weapon { void attack(); } 무기(Weapon)라는 인터페이스를 생성. (자세한 내용은 implements하여 구현) 무기로 공격(attack)을 할 수 있으므로, attack()이라는 메소드를 생성 public class Knife implements Weapon { @Override public..

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)에 의해 사용되지 않는 메모리를 자동으로 정리해준다.