본문 바로가기

728x90

전체 글

(91)
[Java] 값에 의한 호출 [Java] 값에 의한 호출 아래는 BubbleSort를 구현하는 코드이다. 다만, 결과를 출력해보면 입력값과 똑같은 결과를 얻게 된다. 이유가 무엇일까? bubbleSort메서드 내에서 arr[j]와 arr[j+1]의 값을 변경하기 위해서 swap이라는 함수를 호출했을때, data[j]와 data[j+1]의 값은 각각 a와 b에 복사된다. 즉, data[j]와 a는 완전히 별개의 변수이다. 따라서, a와 b의 값을 변경하여도 data[j]와 data[j+1]의 값에는 변화가 없다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); i..
[Java] Tree 구현 [Java] Tree 구현 두개의 class로 구성 Node.java: Node를 구성하는 변수와 생성자, 필요한 메서드로 구성된 java 파일 Test.java: Node를 실제로 생성하고 각 노드 사이의 관계를 연결하는 Main 메서드를 포함한 java 파일 Node.java package tree; import java.util.ArrayList; import java.util.List; public class Node { private Node parent; private ArrayList childList; private int depth; private boolean isIfRoot; private boolean isIfleaf; private Object data; public Node(Ob..
[Java] Bubble sort (버블정렬) [Java] Bubble sort (버블정렬) Bubble Sort(버블 정렬): 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복 시간복잡도: O(n^2) Best Avg Worst O(n^2) O(n^2) O(n^2) 코드 import java.util.*; class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[] arr=new int[n]; for(int i=0;i0;i--){ for(int j=0;jarr[j+1]){ int tmp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=tmp; } } } System.out.printf..
[Java] 연속된 정수들의 최대값 구하기 [Java] 연속된 정수들의 최대값 구하기 문제: n개의 정수를 입력받아 배열에 저장한다. 이들 중에서 0개 이상의 연속된 정수들을 더하여 얻을 수 있는 최대값을 구히여 출력하는 프로그램을 작성하라. 코드 import java.util.*; class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[] arr=new int[n]; for(int i=0;i
[Java] 소수 출력하기 [Java] 소수 출력하기 문제: 1부터 100000 사이의 숫자 중, 소수만 출력해라. 코드 public class Main { public static void main(String[] args) { //main method for(int n=2;n 루트 n까지만 검사. // n의 약수 중 루트 n보다 큰 두개의 약수가 존재할 수 없기때문 boolean isPrime=true; for(int i=0;i*i 소수를 알아보기 위한 검색 범위: root(n)까지 검색하면 된다. -> n의 약수 중에서 루트(n)보다 큰 두개의 약수가 존재한다고 가정 시, 두 개의 곱은 n을 넘게 됨으로 for문은 i제곱이 n을 넘지않을때까지 반복되면 된다.
[MySQL] CURDATE(), CURTIME(), NOW()함수 [MySQL] CURDATE(), CURTIME(), NOW() 함수 사용하기 일별 또는 시간으로 분류되어야하는 리스트,테이블을 보여주어야 하거나 리스트에서 날짜별 검색 조건을 사용할 경우, DB 쿼리 작성 시 MySQL에서 지원하는 CURDATE(), CURTIME(), NOW()와 같은 함수를 사용하면 좀 더 쉽게 쿼리를 작성 할 수 있다. CURDATE(): 현재 날짜를 반환한다. CURTIME(): 현재 시간을 반환한다. NOW(): 현재 날짜와 시간 정보를 반환한다. 추가(응용) -> 오늘 날짜가 CURDATE()라면 어제 날짜로 검색하고 싶은 경우 SUBDATE(date, days) 함수를 사용한다. -> date: The original date -> days: The number of da..
[Javascript] 입력창에 정수값만 입력받기(유효성 체크) [Javascript] 입력창에 정수값만 입력받기 Form 형태로 서버에 값을 전송하다보면 Validation Check가 제대로 이루어지지 않아 발생하는 문제들이 많다. -> 꼭 필요한 input값이 비어있는 경우-> 입력되어야하는 자료형과 다른 자료형이 입력된 경우( e.g.) int값 입력 자리에 string값이 들어간 경우) Controller로 값 전송 전, Validation Check를 위한 방법으로는 크게 두가지 방법이 있다. 1. Submit 전에 조건을 걸어 확인하는 방법 if ($("#test").val() == '') { alert('값을 입력하세요.'); $("#test").focus(); return; } 2. Input창에 값이 입력될때 올바르지 않은 자료형이 들어왔을때 다른 ..
[MySQL] 서브쿼리 사용법 (MyBatis 연동) [MySQL] 서브쿼리 사용법 (MyBatis 연동) MyBatis란? -> 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크 -> JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신 서브쿼리란? -> 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 -> 메인쿼리와 종속적 관계를 가짐 주의점 -> 서브쿼리 사용시, 괄호로 감싸서 사용 서브쿼리 작성이 가능한 곳 SELECT, FROM, WHERE, HAVING, ORDER BY INSERT문의 경우 - VALUES UPDATE문의 경우 - SET 코드 예시
[Spring] IoC (Inversion of Control) - 제어권의 역전 [Spring] IoC (Inversion of Control) - 제어권의 역전 의존성에 대한 일반적인 제어권: "내가 사용할 의존성은 내가 만든다." class OwnerController { private OwnerRepository repository = new OwnerRepository(); } IoC 컨테이너 사용: "내가 사용할 의존성을 누군가 알아서 주겠지" -> 제어권이 IoC 컨테이너로 넘어가 프로그램의 흐름을 프레임워크가 주도하게 된다. -> DI(Dependency Injection)도 IoC의 일종 class OwnerController(OwnerRespository repo){ private OwnerRepository repo; public OwnerController(Own..
[백준] 1931 : 회의실배정(java)-[Greedy] [백준] 1931 : 회의실배정(java)-[Greedy] 문제 - 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력: 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는..
[백준] 3052 : 나머지(java) [백준] 3052 : 나머지(java) 문제 - 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력: 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력: 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 코드 해설 -> boolean 배열을 42 크기로 생성하여 나머지의 값에 해당하는 부분을 true로 변경하여 출력하였다. -> 다른 사람들은 어떻게 풀었을지에 ..
[백준] 2217 : 로프(java)-[Greedy] [백준] 2217 : 로프(java)-[Greedy] 문제 - N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 입력: 첫째 줄에 정수 N..

728x90
반응형