본문 바로가기

분류 전체보기

(82)
[JAVA] Call by Value? Call by reference? 자바는 Call by Value 일까? Call by reference일까? => Call by Value 함수의 호출 방식 크게 2가지 (메소드로 인자값을 넘기는 방법) (1) Call by value (값에 의한 호출) : 인자로 받은 값을 복사하여 처리한다. 장점 : 복사하여 처리하기 때문에 안전. 원래의 값이 보존 단점 : 복사를 하기 때문에 메모리 사용량이 늘어남 (2) Call by reference (참조에 의한 호출) : 인자로 받은 주소를 참조하여 직접 값에 영향을 준다. 장점 : 복사하지 않고 직접 참조 하기에 빠름 단점 : 직접 참조를 하기에 원래의 값이 영향을 받음 1. 인자값으로 기본형을 사용했을 때 package 개념; public class Callby { public stat..
[JAVA]백준_6087_레이저통신 문제 : www.acmicpc.net/problem/6087 6087번: 레이저 통신 크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 'C'로 표시되어 있는 칸이다. 'C'로 표시되어 있는 두 칸을 레이저로 통신하기 위해서 www.acmicpc.net 문제 유형 : BFS + DP, 다익스트라(우선순위큐) 풀이 방식 Step 1. 시작점과 끝점을 파악한 후 visited[][] int형 2차원 배열값을 최대치로 초기화한다. Step 2. 우선순위 큐를 이용하여 다익스트라 알고리즘 Step 3. 방향이 같을때 visited[nr][nc]와 현재 거울 개수를 비교 방향이 다를때 visited[nr][nc]와 현재 거울 개수 +1 를 비교 소스코..
[JAVA] 접근 제어자 (public, private, protected, default) 접근 제어자(access modifier)란? 멤버들은 객체 자신들만의 속성이자 특징이므로 대외적으로 공개되는 것이 결코 좋은 것은 아니다. 그런 이유로 프로그래머가 객체의 멤버들에게 접근 제한을 걸 수가 있는데 자바에서는 이를 접근 제어자라 합니다. 종류 내부 클래스 하위 클래스 동일 패키지 모든 클래스 private O X X X (default) O X O X protected O O O X public O O O O 접근자 설명 public 모든 클래스에서 접근이 가능하다 protected 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근이 가능하다. (default) 같은 패키지 내에서만 접근이 가능하다 private 클래스 내에서만 접근이 가능하다 제어자(modifier) ..
[JAVA] 이진탐색(Binary Search) 이진탐색 정렬된 리스트에서 원소를 반으로 분할(분류)하여 특정 값을 찾는 알고리즘 1. 중간 값(mid)이 찾고자 하는 값(value)보다 작을 경우 => 시작 값(start)이 중간 기준이 되고 다시 중간 값을 도출 2. 중간 값(mid)이 찾고자 하는 값(value)보다 클 경우 => 끝 값(end)이 중간 기준이 되고 중간 값을 다시 도출 3. 시작 값이 끝 값보다 클경우 반복문 종료 (start>end) 소스코드(반복문) package 개념; public class BinarySearch1 { // 이진탐색 - 반복문 public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6 }; // ex) 3을 찾을때 int value = ..
[JAVA]백준_19637_IF문좀대신써줘 문제 : www.acmicpc.net/problem/19637 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 문제 유형 : 이진탐색 풀이 방식 Step 1. 칭호의 이름과 해당 칭호의 전투력 상한값을 list에 넣는다 Step 2. 캐릭터의 전투력을 입력 받고 이진탐색을 한다. Step 3. 이진탐색한 내용들을 StringBuilder에 append 하여 출력 소스 코드 package BOJ; import java.io.BufferedReader; import jav..
[JAVA]백준_2643_색종이올려놓기 문제 : https://www.acmicpc.net/problem/2643 2643번: 색종이 올려 놓기 첫 번째 줄에는 색종이의 장수가 주어진다. 다음 줄부터 각 줄에 색종이의 두 변의 길이가 주어진다. 두 변의 길이는 한 칸 띄어 주어진다. 색종이의 최대 장수는 100이고, 각 변의 길이는 1000보다 www.acmicpc.net 문제 유형 : LIS, DP 풀이 방식 먼저 색종이를 크기로 정렬한 후 최장 증가 순열을 사용 소스 코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util...
[JAVA] 최장 증가 수열 LIS (Longest Increasing Subsequence) 최장증가수열(LIS)란 ? 어떤 임의의 수열이 주어졌을때, 이 수열에서 몇 개의 수들을 제거해서 부분수열을 만들 수 있다. 이 때 만들어진 부분수열 중 오름차순으로 정렬된 가장 긴 수열을 최장증가수열이라고 한다. 동적계획법으로 풀 수 있는 알고리즘 중 하나 예시 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {**10**, **20**, 10, **30**, 20, **50**} 이고, 길이는 4이다. 방법 수열이 들어있는 배열 : array 인덱스마다 각 증가 수열의 길이 배열 : dp Step 1. 2중포문 j : i를 기준으로 인덱스 0에서부터 i-1까지 체크한다. Step ..
[JAVA]백준_15566_개구리1 문제 : https://www.acmicpc.net/problem/15566 15566번: 개구리 1 연못 안에 개구리들이 있을 수 있는 연꽃 N개와, 연꽃 사이를 연결하는 다리 역할의 통나무 M개가 있다. 같은 연꽃 쌍을 연결하는 통나무의 개수는 1개 이하이다. 여기에 N마리의 개구리가 각각 �� www.acmicpc.net 문제 유형 : 순열, 시뮬레이션 풀이 방식 : Step 1. 먼저 개구리가 선호하는 연꽃으로 연꽃-개구리 순열을 만든다 Step 2. 순열이 완성되면 연꽃이 연결된 통나무(연꽃1, 연꽃2)에 맞는 개구리 흥미도를 비교 Step 3. 조건이 완성되면 연꽃 순열을 StringBuilder에 append 해준 후 boolean형 result=true 해준 후 return 시킨다 소스 코..