문제 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. ..
문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 2의 31승-1보다..
그룹 함수 데이터분석 개요 세가지 함수 AGGREGATE FUNCTION: COUNT, SUM, AVG, MAX, MIN 등 각종 집계함수가 포함된다 GROUP FUNCTION: 결산개념(소개, 중계, 합계), SQL테이블 한번 읽는것으로 원하는값 찾는다 WINDOW FUNCTION: 분석함수, 순위함수가 여기에 포함된다 ROLLUP 계층적 요약, 특정 열 또는 집합에 대한 총합 및 소계 계산한다 예시(쿼리문과 결과문) SELECT OrderDate, Product, SUM(Amount) AS TotalAmount FROM OrderTable GROUP BY ROLLUP(OrderDate, Product); -------------------------------- | OrderDate | Product..
클래스가 필요한 이유 배열 사용의 한계 새로운 학생이 늘어난다고 생각해보면 결국 같은 코드를 반복해야한다. 이것을 배열로 묶을 수 있는데 묶게되면 다음과 같다. String[] studentNames = {"학생1", "학생2"}; int[] studentAges = {15,16}; int[] studnetGrades = {90,80}; for (int i = 0; i < studentNames.length; i++) { System.out.println("이름:" + studentNames[i] + " 나이:"+studentAges[i]+" 성적:"+studnetGrades[i]); } 추가하는 과정에서는 크게 불편함을 못 느낄 수 있다. 그런데 이제 추가 또는 삭제하는 과정에서 학생의 이름 배열, 학..
문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 ..
HashSet 자바의 컬렉션중 하나로, 중복된 값을 허용하지 않는 Set인터페이스를 구현하는 클래스이다. 기본적으로 추가는 add를 통해서 값을 추가한다. 중복된 값이 들어가면 내부에서 중복여부 확인후 set에 저장하지않는다. 아래는 hashset에 중복값을 넣은 후에 결과이다. import java.util.HashSet; public class Main { public static void main(String[] args) { HashSet hashSet = new HashSet(); hashSet.add(1); hashSet.add(2); hashSet.add(2); System.out.println(hashSet); } } //출력: [1, 2] 중복값을 제외하고 1,2만 출력되는것을 볼 수 있..
표준 조인 개요 ANSI/ISO SQL2(1992년) 표준 SQL명세 부족, 상호 호환성과 학습효율 많이 부족했다. ANSI/ISO SQL3(1999년): 기능정리, 호환가능한 여러기능 추가하였다. ANSI/ISO SQL(2003년): 기준 소폭추가, 현재 대부분 DB가 사용 현재의 SQL에는 STANDARD JOIN기능이 추가되어있다. 일반 집합 연산자 UNION: 합집합, 중복 제거해준다 INTERSECT: 교집합이다 EXCEPT/MINUS(ORCALE): 차집합(DIFFERENCE)이다 CROSS JOIN: 곱집합(PRODUCT), JOIN조건이없는 경우 생길 수 있는 모든 조합이다 순수 관계 연산자 SELECT: WHERE절로 구현되어 있다 PROJECT: SELECT절로 구현되어 있다 NATUR..
조건문 보통 if, switch를 많이 사용한다. 조건식의 연산결과에 따라 실행할 문장이 달라진다. 그에따라 프로그램의 흐름이 변경된다. if문 if(조건식){ 내용} 이렇게 이루어진다. 조건식의 내용이 참이면 내용을 수행한다. int student_score = 93; if(student_score>=90){ //student_score은 93으로 90보다 크다(true) System.out.println("A 입니다."); //조건문이 true이므로 'A 입니다.' 출력된다 } 추가로 if문은 { }생략이 가능하다. 물론 모든경우가 가능한것은 아니고 한줄의 if문만 가능하다. int student_score = 87; if(student_score>=90) System.out.println("A 입니..
문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이 다른 N과 M문제와 비슷하다. 전에는 str=num+" " 으로 문자열을 저장하고 dfs끝까지가..
REST REST(Representational State Transfer) 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는것이다. HTTP URI을 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)을 통해 해당 자원에 대한 CRUD Operation를 적용한다. CRUD Operation Rest에서의 CRUD Operation 동작 예시 Create: 데이터 생성(POST) Read: 데이터 조회(GET) Update: 데이터 수정(PUT, PATCH) Delete: 데이터 삭제(DELETE) REST 구성 요소 3가지로 구성된다. 자원(Resource): HTTP URL 자원에 대한 행위(Verb) : HTTP Method 자원에 대한 행..