목록자바 (29)
-
클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.클래스의 용도 : 클래스는 객체를 생성하는데 사용된다. 객체의 정의 - 실제로 존재하는 것. 사물 또는 개념 객체의 용도 - 객체가 가지고 있는 기능과 속성에 따라 다름 유형의 객체 - 책상, 의자, 자동차, TV와 같은 사물 무형의 객체 - 수학공식, 프로그램 에러와 같은 논리나 개념 예를 들면 이런것..클래스객체설계도집 출처 : 자바의 정석
Hello.java 작성 ― javac.exe → Hello.class 생성― java.exe →실행1. 자바컴파일러(javac.exe)를 사용해서 소스파일(Hello.java)로부터 클래스파일(Hello.class) 생성2. 자바 인터프리터(java.exe)로 실행
자바를 시작하기 전에 :: JVM(Java Virtual Machine) - 2 JVM은 'Java virtual machinie'의 줄임말이다. java로 작성된 프로그램이 실행되기 위해서는 반드시 JVM이 필요하다. 일반 프로그램의 코드는 OS를 거쳐 하드웨어로 전달되는 반면 java프로그램은 jvm을 거쳐 os, 하드웨어로 전달되기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일 된 상태가 아니고 실행 시에 해석되기 때문에 속도가 느리다는 단점을 가지고 있다. Java 애플리케이션 JVM 일반 애플리케이션 OS(Window) OS(Window) 컴퓨터(하드웨어) 컴퓨터(하드웨어) Java 애플리케이션과 일반 애플리케이션의 비교 Java 애플리케이션 Java 애플리케이션 Window용 JVM Linux..
소수 찾기https://www.acmicpc.net/problem/1978 [문제 풀이] 입력받을 숫자의 개수의 범위는 1
제곱 ㄴㄴ 수https://www.acmicpc.net/problem/1016 [문제 풀이] min과 max의 범위를 살펴보면, 1
욕심쟁이 판다 1937 https://www.acmicpc.net/problem/1937 map[][]에 대나무 숲 정보를 다 집어넣고 map[1][1]부터 dfs로 이동 가능한 곳 모두 탐색한 뒤 최댓값 출력하면 될것같은데...알고리즘 공부하던 초창기에 푼거라 빙빙 돌아간 것 같다.. 어쨋든, 코드를 설명하자면 1. bamboo[][] 배열에 입력받은 정보들을 집어넣는 동시에 ArrayList al에도 집어넣는다. 2. al을 대나무 양을 기준으로 sort 한다. 3. al에 들어있는 정보들을 하나씩 get 해와서 탐색한다. 4. 탐색 종료 후 최댓값을 찾아서 출력한다.이렇게 된다... 예전에 풀었던 문제를 다시 보니 뭔가 실력이 향상된것 같아 뿌듯하다. 물론 코딩테스트는 다 떨어졌지만..ㅠ__ㅠ 12..
연속합 1912https://www.acmicpc.net/problem/1912 [문제 풀이]dp[i]를 index가 i일때의 연속합이라고 정의하면 dp[i] = max(ar[i], dp[i-1]+ar[i])이런 점화식을 구할 수 있다. 우선 10개의 숫자가 입력됐을 때 방금 구한 점화식으로 연속합을 구해보면index 1 2 3 4 5 6 7 8 9 10 입력 10 -4 3 1 5 6 -35 12 21 -1 연속합10 6 9 10 15 21 -14 12 33 32 표와 같고, 연속합의 최댓값은 index가 9일때 33(12+21)이라는 것을 알 수 있다. 계산을 모두 마친 후, dp배열에 저장된 연속합들 중 가장 큰 값을 출력하면 끝!! 1234567891011121314151617181920212223..
자두나무 2240 https://www.acmicpc.net/problem/2240 [문제 풀이]dp[T][W] 2차배열 생성하고,dp[T][W]는 T초에 W번 이동했을 때 먹은 자두의 개수 라고 했을 때W % 2 == 0일때 dp[i][j] = jadu[i] == 1 ? Math.max(dp[i-1][j-1] + 1, dp[i-1][j]+1) : dp[i-1][j];W % 2 == 1일때 dp[i][j] = jadu[i] == 2 ? Math.max(dp[i-1][j-1] + 1, dp[i-1][j]+1) : dp[i-1][j]; 연산을 마치고 dp[T][0] ~ dp[T][W] 중 최댓값 출력 123456789101112131415161718192021222324252627282930313233343..
1학년 5557https://www.acmicpc.net/problem/5557 [문제 풀이]눈여겨 볼 점은 계산을 하다보면 범위가 int형 범위를 넘어갈 수도 있다는 점.상근이가 아는 수는 다행히 0부터 20까지라는 점이다. 1. 숫자의 개수 N을 입력받고 2. 다음 줄에 나오는 N개의 숫자를 long형 ar[]배열에 집어넣는다. 3. 2차원배열 dp[N+1][21]를 생성한다. 어떻게 풀어나갈 생각이냐면.... dp[i][j]를 'i번째 수 까지 계산을 했을 때 j를 만들 수 있는 경우의 수'로 생각한다. 예를들어, dp[1][8] = 1 (8 = 8) dp[2][5] = 1 (8 - 3 = 5) dp[2][11] = 1 (8 + 3 = 11) 이다. 4. dp[i-1][]와 dp[i][]와의 관계를..
경로 찾기 11403https://www.acmicpc.net/problem/11403 [문제 풀이] 이 문제를 푸는 방법은 여러 가지가 있다. 나는 bfs, dfs, 플로이드 와샬 알고리즘 중 플로이드 와샬 알고리즘을 이용해 풀었다.플로이드와샬 알고리즘은 형태가 정해져있기 때문에 모든 경로를 탐색하는 문제에 적용하기 쉬운 것 같다. 1. 모든 입력은 0과 1로 이루어져있다. 나는 입력을 받은 후 int형으로 바꾸지 않고 String형 그대로 map에 저장했다. 2. 정점 r에서 k로 가는 경로가 존재하고, 정점 k에서 c로 가는 경로도 존재한다면 정점 r에서 c로 가는 경로 또한 존재한다고 볼 수 있기 때문에 map[r][c]를 1로 설정해 주면 된다. 3. 탐색을 모두 마치고 출력하면 끝. 12345..