Programming (136) 썸네일형 리스트형 [BAEKJOON] 2839번: 설탕 배달 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int res = Integer.MAX_VALUE; int min = Integer.MAX_VALUE; int .. [BAEKJOON] 1002번: 터렛 한 정점(x₁, y₁)과의 거리가 r₁보다 작거나 같고 x좌표와 y좌표가 정수인 모든 점과 한 정점(x₂, y₂)과의 거리가 r₂보다 작거나 같고 x좌표와 y좌표가 정수인 모든 점 중에서같은 점의 개수를 출력하는 문제. 다시 말해 원 (x-x₁)² + (y-y₁)² = r₁²과 원 (x-x₂)² + (y-y₂)² = r₂²의 교점의 개수를 출력하는 문제다. 123456789101112131415161718192021222324252627282930313233343536373839404142#include int run(); int main(){ return run();} int run(){ int x1, y1, r1, x2, y2, r2; int r3; int num; int diff; scanf("%d.. 파일 압축 1. 파일은 바이트 단위로 기록된다. ⒜파일에 저장되는 데이터의 단위는 바이트다. 파일 크기를 KB 등의 단위로 나타내는 것도 이 때문이다. 바꿔 말하면 파일은 바이트의 집합체라고 할 수 있다. 1바이트로 표현할 수 있는 데이터는 256가지이며, 2진수로 00000000 ~ 11111111의 범위를 갖는다. 이 데이터가 문자를 나타낸다면 문서 파일이 되고, 그림을 나타낸다면 그림 파일이 되는 것이다. 하지만 파일은 바이트 단위의 데이터가 연속적으로 저장되어 있는 것임은 같다. ⒜파일(file): 디스크 등의 기록 매체에 데이터를 저장한 것 2. 런 렝스 코딩 'AAAAAAAABBBBCCCCCCDDDDD'를 저장한 텍스트 파일이 있다고 하자. 알파벳 하나의 크기는 1바이트이므로 이 파일의 크기는 22바이트.. 디스크의 구조 디스크는 표면을 몇 개의 영역으로 나누어 사용되며, 나누는 방식에는 섹터 방식과 가변 방식의 두 가지가 있다. 섹터 방식은 고정된 길이의 영역으로 나누는 방식이고, 가변 방식은 일정하지 않은 길이의 영역으로 나누는 방식이다. 일반적인 PC에서는 전자를 채택하고 있으며, 그 구조는 다음과 같다. 여기서 섹터(sector)는 디스크를 물리적으로 읽고 쓰는 최소 단위가 된다. 윈도우에서 사용하는 디스크의 경우 1섹터를 512바이트로 하는 것이 일반적이다. 단, 논리적(소프트웨어적)으로 디스크를 읽고 쓰는 단위는 클러스터(cluster)다. 클러스터는 섹터의 정수배(512B, 1KB, 2KB, 4KB, …)며, 하드디스크의 용량에 비례한다. 바꿔 말하면 아무리 작은 파일이라도 무조건 1 클러스터 이상의 영역을 .. [Project Euler] Problem 002 반복문(Java)1234567891011121314151617181920212223public class Problem002 { public static void main(String[] args) { int n1 = 1, n2 = 2; int n3 = n1 + n2; int sum = 2; while(n3 [Project Euler] Problem 001 123456789101112131415public class Problem001 { public static void main(String[] args) { int sum = 0 ; for(int i = 1; i 포인터와 배열의 관계 1. 배열은 포인터다. 정확히 말하면, 배열의 이름은 그 값을 바꿀 수 없는 상수 포인터다. 앞에서 본 포인터 변수는 값을 바꿀 수 있었다. 1 2 3 4 5 6 7 8 9 10 11 12 #include int main() { int num1, num2; int* ptr = &num1; ptr = &num2; ... } cs 이렇게. 하지만 배열의 경우 값을 바꿀 수 없다. 1 2 3 4 5 6 7 8 9 10 11 #include int main() { int arr[3] = { 0, 1, 2 }; arr = &arr[2]; //에러 발생! ... } cs 배열은 시작 주소를 기준으로 해서 각 요소들의 주소를 지정한다. 배열 arr이 0x0030F780에 할당되었고, int 배열이라고 하자. 그럼 &.. 포인터 1. 포인터 변수 포인터 변수(pointer variable)는 주소값을 저장하는 변수다. 메모리 공간은 1바이트 단위로 구분되어 있고, 단위에는 숫자가 매겨져 있다. 이 숫자를 주소, 번지 또는 어드레스(address)라 한다. 다음과 같이 변수가 선언되어 있다고 하자. 1 2 3 4 5 6 7 8 9 #include int main() { char ch = 'S'; int num1 = 6, num2 = 3; ... } cs 실제 메모리 공간에는 다음과 같이 저장된다. (다음과 같이 나란히 저장될 수도, 그렇지 않을 수도 있다.) 참고로 주소값을 2진수로 나타내려면 32자리를 나타내야 하기 때문에 보통 16진수로 나타낸다. S, 6, 3은 각각 0xffffdded, 0xffffddee, 0xffffdd.. Prev 1 ··· 11 12 13 14 15 16 17 Next