전체 글

IT에 관심있는 사람들을 위한 블로그
Java

Java - StringBuffer클래스

🌱 오늘의 주제 : StringBuffer클래스 🌱 StringBuffer클래스 String클래스는 인스턴스를 생성할 때 지정된 문자열을 변경 할 수 없지만, StringBuffer클래스는 변경이 가능하다. 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있다. 인스턴스 생성할 때 크기를 지정할 수 잇다. 문자열을 저장하기 위한 char형 배열의 참조변수를 인스턴스변수로 선언해 놓고 있다. public final class StringBuffer implements java.io.Serializable { pivate char[] value; } 🌱 StringBuffer의 생성자 인스턴스를 생성할 때, 버퍼의 크기를 지정해주지 않으면 16개의 문자로 저장 할 수 있는 크기의 버퍼로 생성한다...

Algorithm

Algorithm - 주사위 세개(Java)

🌴 문제 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금..

Algorithm

Algorithm - 오븐 시계(Java)

🌴 문제 문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대..

Java

Java - String클래스

🌱 오늘의 주제 : String클래스 🌱 String클래스 String클래스에는 문자형 배열 참조변수(char[]) value를 인스턴스 변수로 정의해 두고 잇다. String 인스턴스는 문자열을 읽어 올 수 만 있고, 변경은 불가능 하다. 🌱 문자열(String)의 비교 문자열 만드는 두가지 방법이 있다. 1) 문자열 리터럴을 지정하는 방법 문자열 리터럴은 이미 존재하는 것을 재사용 하는 것이다. String str1 = "abc"; // 문자열 리터럴 "abc"의 주소가 str1에 저장됨 2) String클래스의 생성자를 사용하는 방법 생성자를 이용할 경우, new연산자에 의해, 항상 새로운 String 인스턴스가 생성된다. String str3 = new String("abc"); package C..

Algorithm/자료구조와 함께 배우는 알고리즘 (자바편)

04-1 스택이란?(자바편)

🌱 오늘의 주제 : 스택이란? 🌱 스택이란? 후입선출 (LIFO: Last In First Out) 🌱 스택 코드 package Chapter4; public class IntStack { // int형 고정 길이 스택 private int[] stk; // 스택용 배열 private int capacity; // 스택 용량 private int ptr; // 스택 포인터 // 실행 시 예외 : 스택이 비어있음 public class EmptyIntStackException extends RuntimeException { public EmptyIntStackException() {} } // 실행 시 예외: 스택이 가득참 public class OverflowIntStackException extends..

Algorithm

Algorithm - 알람 시계

🌴 문제 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다. 현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를..

Java

Java - Object클래스

🌱 오늘의 주제 : Object클래스 🌱 Object클래스 🌱 Object클래스의 메서드 - equals() 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할 public boolean equals(Object obj) { return (this == obj) // 주소 비교 } package Chapter9; public class Ex9_1 { public static void main(String[] args) { // object클래스의 메서드 -equals() Value v1 = new Value(10); Value v2 = new Value(10); if (v1.equals(v2)) { // 주소값으로 비교. System.out.println("v1과 v..

Algorithm

03 - 구간 합 구하기

🌴 문제 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 예제 입력 1 복사 5 3 5 4 3 2 1 1 3 2 4 5 5 예제 출력 1 복사 12 9 1 🌴 문제 분석 package CodingTest; import java.io.BufferedReader; import..

Java

Java - BufferedReader

🌱 오늘의 주제 : BufferedReader 🌱 BufferedReader 선언하기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언 String s = br.readLine(); int i = Integer.parseInt(br.readLine()); 입력 : readline(); String으로 리턴값이 고정되어 있다. 다른 타입으로 입력 받고자 하면, 형변환 필요. 반드시 예외처리가 필요. readLine()시 마다 try/catch문으로 감싸주어도 되고, throws IOException 을 통한 예외처리를 해도 된다.(대부분의 경우에 후자를 사용한다. 🌱 데이터 가공 BufferedReader를 통해 ..

Java/객체지향 프로그래밍 총 정리

Java - 객체지향 프로그래밍 규칙 총 정리 (2)

🌱 오늘의 주제 : 객체지향 프로그래밍 규칙 총 정리 (2) 🌱 객체지향 프로그래밍 (2) 상속: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 장점 - 적은 양의 코드로 새로운 클래스 작성 가능. 코드의 추가 및 변경이 매우 용이함. 프로그램 생산성과 유지보수에 좋음. 구현하는 법 - 자손 클래스 이름 extends 조상 클래스 이름 class Child extends Parent { } 조상 클래스가 변경되면 자손 클래스는 자동적으로 영향을 받게 된다. 반대로, 자손 클래스가 변경되는 것은 조상 클래스에 영향을 주지 못한다. 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다. (생성자와, 초기화 블럭은 상속 안됨) 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 단일 상속만..

요가하는 개발자
요가하는 개발자