[Data Structure / Java] ✒️ 시간 복잡도
·
Algorithm & Data Structure/study
시간 복잡도 입력되는 데이터의 증가에 따른 성능의 변화를 예측 1. O(1) int function(int[] n) { if(n.length < 3) return 0; int a = n[0]; a += n[1]; a += n[2]; return a; } int배열 n개가 들어오는데 몇개가 들어와도 메소드 안의 처리는 연산의 양은 변하지 않는다. 즉, 변화가 없이 항상 일정하다. 2. O(n) int sum(int[] n) { int s = 0; for (int index : n) { s += index; } return s; } int 배열 n개가 들어올 때 메소드 안의 처리하는 연산이 n번 수행된다. 입력되는 배열 n개에 따라 연산하는 양이 비례한다. 3. O(n^2) void bubbleSort(in..
[Data Structure / Java] ✒️ Call By Value / Call By Reference
·
Algorithm & Data Structure/study
함수 호출 방법에는 크게 두 가지가 있다. Call By Value (값에 의한 호출) - Primitive Type 기본 자료형 (int, short, long, float, double, char, boolean) 일 경우 Call By Reference (참조에 의한 호출) - Reference Type 참조 자료형 (Array, Class Instance) 일 경우 Call By Value (값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. Call By Reference (참조에 의한 호출)는 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. (주소 값을 넘긴다.) 다시 말해 값을 복사하여 처리하느냐, 직접 참조를 하느냐의 차이. Programming 구조상 Call By V..
[Data Structure / Java] ✒️ 컴퓨터가 데이터를 다루는 방법
·
Algorithm & Data Structure/study
Java는 데이터를 어떻게 표현하는가 Java는 크게 두 가지 Data Type을 사용한다. Primitive Reference (Object) Primitive Type와 Reference Type이 어떻게 다른지를 이해하기 위해서는 이 타입들이 컴퓨터 메모리에서 어떻게 존재하는지를 이해해야 한다. Primitive Type은 ? int i = 42; float pi = 3.14; boolean b = true; i 라는 int 변수 하나가 만들어져 있다. 이 변수는 메모리 상 어딘가에 42라는 값이 저장이 된다. 우리는 i라는 변수를 사용하면 메모리에서 42라는 값을 꺼내와서 사용할 수 있다. pi 라는 float 변수와 b 라는 boolean 변수도 동일하게 pi 나 b 라는 변수를 사용하여 메모리..
✔[paiza] 문자열 결합
·
Algorithm & Data Structure/assignments
✔ 문자열 결합 문제 입력 받을 문자열 수와 문자열을 입력받고 출력 포멧에 맞게 출력하세요. 입력 n // 입력 받을 문자열 수 s_1 // 문자열 s_2 .. s_n 출력 Hello s_1,s_2,..s_n. 입력 예시 1 2 Java Gino 출력 예시 1 Hello Java,Gino. 입력 예시 2 5 Alice Bob Carol Dave Ellen 출력 예시 2 Hello Alice,Bob,Carol,Dave,Ellen. 코드 import java.util.Scanner; public class A1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(Sys..
✔ [BOJ/15552] 빠른 A+B
·
Algorithm & Data Structure/boj
✔ [BOJ/15552] 빠른 A+B 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출..
✔ [BOJ/8393] 합
·
Algorithm & Data Structure/boj
✔ [BOJ/8393] 합 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 예제 입력 3 예제 출력 6 알고리즘 분류 구현 수학 코드 import java.util.*; public class Main { public static void main(String args[]) { Scanner in = new Scanner(System.in); int input = in.nextInt(); int sum = 0; for(int i=1;i