입력된 수를 정렬하기만 하면 되는 간단한 문제. 버블정렬, 힙정렬, 삽입정렬, 합병정렬등 여러가지가 있지만, stream을 사용해 정렬을 해보았다. stream을 사용하면 원본은 변하지 않는다. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int[] list=new int[n]; for(int i=0;i
처음 봤을때는 그냥 n-1에 1000을 곱하고 666을 더하면 안되나 생각했지만, 예외가 있다. 1666,2666,3666일때는 그냥 1000만 더해주면 되지만 끝자리가 666이 아닐때, 즉 6660이거나 16660일때는 6661,6662,6663...이 순서로 적용된다. 따라서 이런 상황일때를 고려해 코드를 짜야한다. 가장 간단한 방법은 1씩 더해서 그 더한 값에 666이 포함되어있으면 카운트를 올리고, 카운트가 n과 같아진다면 출력하는 방법이 가장 간단하다. 하지만 시간이 오래 걸린다. 일단은 가장 간단한 방법으로 풀어보았다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sca..
언어 영어, 한국어, 중국어, 일본어등등 같은것을 자연언어라 한다. 알파벳: 하나 이상의 심벌들의 유한집합, ∑로 표현한다. 문자열: 심벌들의 유한길이의 순서열 ex) 알파벳은 ∑={a,b}라고 하면, aa,aba,abbba,aaaab는 알파벳 ∑에대한 문자열이 된다.특별한 경우를 제외하고, ∑는a,b,c,d...같은 소문자를 사용하고,문자열의 이름은 u,v,w...등을 사용한다.이름이 w인 문자열의 값이 aba는 w=aba라 나타낸다. 접합: 문자열과 문자열을 붙이는 것 ex) w=a_1a_2a_3a_4....a_n, v=b_1b_2b_3b_4...b_m 일때 w와 v의 접합 wv는 a_1a_2a_3a_4....a_nb_1b_2b_3b_4...b_m가 된다. 역문자열 : 문자열의 심벌들은 역순으로 배열..
정사각형으로 n*m으로 나눠지고 각 칸은 B,W중 하나로 칠해진 판을 체스판으로 만드려고 하는데, 이때 어느부분을 자르면 가장 적게 칠할수 있을지 푸는 문제. 구현은 쉬웠지만, 어떻게 구해야 할지 고민을 많이 했던 문제. 일단 8*8 체스판을 제작하려 했을때, 처음 시작하는 부분, 즉 배열로 따지면 (0,0)에 들어있는 색상에 따라 칠할수 있는 숫자가 달라진다. 색상에 따라 칠하는 수는 "64-색상에따른 칠하는 수"가 된다. 만약 B가 첫번째이면 W가 첫번째로 오는 체스판을 칠하는 수는 B의 수에다가 64를 빼면 된다. 그것만 알면 나머진 풀기 쉬운 문제. import java.util.Scanner; public class Main { public static void main(String[] args..
데이터 정의어 CREATE : Schema, Domain, table, view, index를 정의하는데 사용한다. USE SCHEMA_NAME; #사용할 스키마 입력 CREATE TABLE student( id INT NOT NULL PRIMARY KEY, #NOT NULL은 NULL값을 허용하지 않겠다는 의미, PRIMARY KEY는 기본키를 의미한다. 중복 불가, null 불가. 주로 id에 사용 `name` VARCHAR(10) NOT NULL, # `는 mac기준 ₩키를 입력하면 됨. student_num INT NOT NULL, UNIQUE(`name`) #UNIQUE는 제약조건, 중복불가 ); ALTER: table의 정의를 변경하는데 사용한다. ex) table에 변수(column) 추가 ..
그래프: 정점들의 집합 V(v_1,v_2,v_3...,v_n) 과 간선들의 집합 E={e_1,e_2,e_3....,e_m}으로 이루어진 구조. 간선: 각 간선은 집합 V에 있는 정점들의 쌍 $$e_i = (v_j,v_k)$$ 간선 e_i는 v_j로부터 시작하고 v_k에 도착하는 간선이 된다. v_j를 기준으로 하면 진출간선이라 하고, v_k를 기준으로 하면 진입간선이라 한다. 유향 그래프: 각 간선에 방향을 지정한 그래프 라벨 그래프: 각 정점이나 간선에 라벨을 지정한 그래프. 라벨은 특별한 이름이나 정보일 수 있다. 정점이 {v_1,v_2,v_3}이고 간선들의 집합이 {(v_1,v_3),(v_3,v_1),(v_3,v_2),(v_3,v_3)}인 그래프에서 간선들은 v_i로부터 v_n으로의 "보행" 이라 ..