전체 글

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

Algorithm - 수학은 체육과목 입니다. (Java)

🌴 문제 문제 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않고 근성과 체력을 사용해 문제를 푼다. 지난 시험에서는 아래 사진에 나와있는 문제를 근성과 체력을 사용해 열심히 풀었지만 사진에서 볼 수 있듯이 틀려버리고 말았다! 결국 이 문제는 틀려버렸지만 성원이는 여전히 자신의 체력에 강한 자신감을 갖고 있다. 어떤 어려운 문제가 나와도 이런 식으로 근성과 체력을 사용하면 다 풀 수 있으니 이 방법은 최고의 방법이라고 생각하고 있다. 성원이의 친구 형석이는 근성과 체력으로 수학 문제를 푸는 것은 굉장히 무식한 방법이라고 생각한다. 형석이는 수학을 공부하면 문제를 훨씬 빨리 풀 수 있다는 것을 알려주기 위해 위 사진에 나..

코딩 에러 및 질문

Execution failed for task ':HelloSpringApplication.main()'.

🌳 에러 코드 Execution failed for task ':HelloSpringApplication.main()'. > Build cancelled while executing task ':HelloSpringApplication.main()' * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. 🌳 해결 방법 🌾 원인 : gradle로 실행했기 때문. 🌾 해결 방법 : 1. Gradle 설정에서 IntelliJ IDEA 바로 변경. 2. 마지막으로 File -> O..

Algorithm

Algorithm - 네 번째 점 (Java)

🌴 문제 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 복사 5 5 5 7 7 5 예제 출력 1 복사 7 7 예제 입력 2 복사 30 20 10 10 10 20 예제 출력 2 복사 30 10 🌴 문제 분석 package Backjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; p..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

00B. 자바8 람다와 인터페이스 스펙 변화

🌱 오늘의 주제 : 자바8 람다와 인터페이스 스펙 변화 🌱 람다가 도입된 이유 람다가 도입된 이유는 기업 환경 변화와 프로그래머들의 요구이다. 기업들은 빅데이터들의 분석 및 활용을 통해 기업 전략을 수립하고, 수익을 극대화하고자 하기에, 빅데이터를 프로그램적으로 다룰 수 있는 방법이 필요졌다. 그 방법의 중심에는 멀티 코어를 활용한 분산 처리, 즉 병렬화 기술이 필요하다. 병렬화를 위해 컬렉션 (배열, List, Set, Map)을 강화했고, 이러한 컬렉션을 더 효율적으로 사용하기 위해 스트림을 강화했다. 스트림을 효율적으로 사용하기 위해 함수형 프로그래밍이 나타났고, 다시 함수형 프로그래밍을 위해 람다가 도입되었다. 람다를 위해 다시 인터페이스의 변화가 수반됐다. 람다를 지원하기 위한 인터페이스를 함수..

Algorithm

Algorithm - 직사각형에서 탈출

🌴 문제 문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 제한 1 ≤ w, h ≤ 1,000 1 ≤ x ≤ w-1 1 ≤ y ≤ h-1 x, y, w, h는 정수 예제 입력 1 복사 6 2 10 3 예제 출력 1 복사 1 예제 입력 2 복사 1 1 5 5 예제 출력 2 복사 1 예제 입력 3 복사 653 375 1000 1000 예제 출력 3 복사 347 예제 입력 4 복사 161 181 762 375 예제 출력 4 복사 161 🌴 문제 분..

Computer Science/데이터베이스

데이터베이스 - 인덱스

🌱 오늘의 주제 : 데이터베이스 - 인덱스 🌱 인덱스 인덱스는 데이터를 빠르게 찾을 수 있는 하나의 장치이다. 🌱 B-트리 인덱스는 보통 B-트리 자료 구조로 이루어져 있다. 루트 노드, 브랜치 노드, 리프 노드로 구성되어 있다. 🌱 인덱스가 효율적인 이유와 대수확장성 인덱스가 효율적인 이유는 효율적인 단계를 거쳐 모든 요소에 접근 할 수 있는 균형 잡힌 트리 구조와 트리 깊이의 대수확장성 때문이다. 대수확장성이란 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 말한다. 기본적으로 인덱스가 한 깊이씩 증가 할때마다 최대 인덱스 항목의 수는 4배씩 증가한다. 🌱 인덱스 만드는 방법 - MySQL 클러스터형 (Cluster) 인덱스 클러스터형 인덱스는 데이블당 하나를 설정할 수 있다. Prim..

Java

Java - Calendar와 Date

🌱 오늘의 주제 : Calendar와 Date 🌱 Calendar와 Date Calendar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다. Calendar cal = Calendar.getInstance(); 1. Calendar를 Date로 변환 Calendar cal = Calendar.getInstance(); Date d = new Date(cal.getTimeInMillis()); 2. Date를 Calendar로 변환 Date d = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(d) import java.util.Calendar; public class d..

Computer Science/자료 구조

자료 구조 - 선형 자료 구조와 비선형 자료 구조

🌱 오늘의 주제 : 선형 자료 구조와 비선형 자료 구조 🌱 선형 자료 구조 - Array vs Linked List Array 가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 ..

Algorithm

Algorithm - 직사각형 (백준 - Java)

🌴 문제 문제 정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오. 입력 표준 입력에 다음과 같은 형태로 입력이 주어진다. A B 출력 세로 길이가 A cm, 가로 길이가 B cm인 직사각형의 넓이를 cm2 단위로 구하고, 단위 (cm2)를 생략하여 출력한다. 제한 1 ≦ A ≦ 100. 1 ≦ B ≦ 100. A, B 는 정수이다. 예제 입력 1 복사 2 3 예제 출력 1 복사 6 세로 길이가 2 cm, 가로 길이가 3 cm인 직사각형의 넓이는 6 cm2이므로, 6 을 출력한다. 예제 입력 2 복사 100 1 예제 출력 2 복사 100 예제 입력 3 복사 4 4 예제 출력 3 복사 16 🌴 문제 분석 package Backj..

Java

Java - StringTokenizer 클래스

🌱 오늘의 주제 : StringTokenizer 클래스 🌱 StringTokenizer 클래스 StringTokenizer는 긴 문자열을 지정된 구분자를 기준으로 토큰이라는 여러 개의 문자열로 잘라내는 데 사용된다. StringTokenizer는 구분자로 단 하나의 문자 밖에 사용하지 못한다. package Backjoon; import java.util.StringTokenizer; public class day26 { public static void main(String[] args) { // split()과 StringTokenizer 비교 String data = "100,,,200,300"; String[] result = data.split(","); StringTokenizer st = n..

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