기타 정보: 169개의 글
Java 이중 말단 연결 리스트(double ended linked list) 정리 단순 연결 리스트는 첫번째 노드에 대해 삽입, 삭제 작업을 할 경우 빠른 처리능력을 보여주지만 마지막에 데이터를 삽입, 삭제 할 경우 처음부터 끝까지 순차 검색을 하여 마지막 노드를 찾아야 하기 때문에 저장된 데이터의 수가 많아 질수록 그 효율이 떨어진다. 반면에 이중 말단 연결 리스트(double ended linked list)는 헤더에 처음 노드의 참조와 함께 마지막 노드에 대한 참조도 같이 저장함으로써 마지막 노드에 대한 접근을 빠르게 처리할 수 있다는 장점을 가진다. 단순 연결 리스트는 리스트의 처음 노드에 데이터를 저장하고 처음 노드의 데이터를 꺼내는 작업에 좋은 효율을 가지므로 마지막에 저장한 데이터를 먼저 ..
Java 단순 연결 리스트(simple linked list) 정리 단순 연결 리스트(simple linked list, singly linked list)는 가장 단순한 연결 리스트의 형태로 각 노드들은 다음 노드를 가리키는 하나의 참조만을 갖는다. 다음 노드의 참조밖에 가지고 있지 않으므로 노드의 접근은 한 방향으로만 가능하다. 헤더는 처음 노드의 참조만 가지고 있으며 처음 노드는 두번째 노드, 두번째 노드는 세번째 노드를 가리키고 있으며 마지막 노드가 가리키는 참조값은 null이 된다.즉, 헤더가 가리키는 노드가 처음 노드며 참조값이 null인 노드가 마지막 노드가 되는 것이다. 1. 단순 연결 리스트의 기본 구조 public class MyLinkedList { private Node header..
Java 배열(array)과 리스트(list) 비교 리스트(list)란 데이터를 순차적으로 나열해 놓은 집합을 가리키는 자료구조의 추상적인 개념으로 비슷한 성질의 데이터를 순서를 고려하여 그룹화 시키고자 할 때 주로 사용하는 자료구조이다. 1. 배열을 이용한 구현 배열을 이용하여 리스트(list)를 구현할때의 가장 큰 장점은 쉽게 구현할 수 있다는 점이다. 배열은 내부 인덱스를 가지고 데이터에 접근할 수 있으므로 인덱스의 번호가 곧 데이터들의 순서를 의미하기 때문에 데이터 삽입시 순차적으로 인덱스 값을 증가시키면서 저장하면 되고 데이터를 검색 할 때에도 인덱스를 가지고 직접 접근하여 빠르게 찾을 수 있다.그리고 배열은 항상 인덱스 0부터 시작하기 때문에 첫 데이터를 쉽게 찾을 수 있으며 저장된 데이터의 ..
JAVA 배열을 이용한 자료의 관리 자료구조란 특정 큐칙을 적용한 자료의 집합을 의미한다. 자료구조 중에서 가장 기본이 되며 가장 단순한 구조인 배열은 동일한 형태(int, double, String, Object 등)의 자료들이 순서를 가지고 구성된 집합이다. 배열은 초기 생성시에 그 크기를 미리 지정해야 한다. 초기에 지정한 크기는 바꿀 수 없기 때문에 생성한 크기보다 많은 자료를 저장할 수 없어 효율적인 자료구조로 사용하는데 제약이 따르게 된다. 배열 내에 저장된 자료들은 그 위치 값(index)을 가지고 식별할 수 있으며 위치값은 자료의 절대적인 위치를 나타내므로 특정 데이터에 접근 할 경우 처음부터 탐색할 필요 없이 index를 가지고 직접 접근할 수 있다. 1. 배열의 선언, 생성 및 초기화 ..
자료구조의 개요, 특징, 분류 1. 자료, 정보, 자료구조 (1) 자료와 정보 자료(data)란 현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합을 의미한다. 흔히 가공되지 않은 형태의 데이터를 자료라고 하며 특정한 용도로 사용하기 위하여 자료를 처리/가공한 형태의 데이터를 정보(information)라고 한다. (2) 자료구조 자료구조(data structure)란 자료의 집합을 의미하며 각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다. (3) 자료구조의 선택 기준 작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 적절한 자료구조를 선택하여 사용해야..
데스크톱 PC와 달리 노트북은 제한적인 공간으로 인해 업그레이드나 부품교환이 쉽지 않다. 특히 CPU나 그래픽카드 변경은 꿈도 못 꾸고, 기껏해야 저장장치와 메모리에 손대는게 고작. 이마저도 슬림 노트북은 메인보드 기판에 저장장치와 메모리를 집적하는 온보드(On-board) 방식을 채택해 업그레이드마저 차단해버렸다. 그러나 희망은 있다. 여전히 많은 노트북은 혹여 답답해할 당신을 위해 업그레이드의 여지를 남겨뒀다. 노트북에 대한 약간의 이해도와 과감히 하단 패널을 잡아 뜯을 용기가 있다면 얼마든지 노트북 업그레이드 가능하다. 두 번째 조건(용기)에 대한 두려움을 극복하면 업그레이드 준비의 절반은 끝난 셈이다. 자, 이제부터 이 글을 천천히 읽어보면 노트북 업그레이드에 대한 자신감이 조금 생길지도 모르겠다..
요즘은 그런 일이 잘 없지만 예전에는 프로그램을 짜면서 bit operation을 잘 써야하는 경우가 있었다. bit operation을 쓰는 이야라하면 bit operation이 대부분 가벼운 명령어로 + 정도의 로드를 가졌기 때문에 속도가 빨랐랐고, 컴퓨터가 bit를 기반으로 하기 때문에 코드 좀 더 깜끔하게 짤 수 있었다. 가끔 메모리가 부족할 때면 1byte 변수하나를 8개의 bit로 나눠 쓰려는 목적으로 사용하기도 했다. 요즘에야 컴퓨터도 좋아지고 자원이 넉넉해져서 효율적인 측면 보다는 프로그램의 구조적인 측면을 더 중요하게 보는 경향이 있어서 bit operation을 굳이 쓰지 않아도 되기 때문에 크게 쓸 일은 없지만 컴퓨터 아키텍쳐상 bit operation은 여전히 cpu 기본 opera..
기술 면접 대비 문제 대비 훈련법1. 직접 풀도록 노력해야합니다. 진실로 노력해야합니다. 많은 문제들은 까다롭게 만들어졌습니다. 문제를 풀때는 공간과 시간 효율에 대해서 반드시 생각해야 합니다. 공간효율을 희생해서 시간 효율을 높일 수 있는지, 아니면 반대로 할 수 있는지 자문해 보아야 합니다.2. 알고리즘 코드를 종이에 적어봅니다. 여러분은 아마 지금껏 컴퓨터 앞에서 코딩을 해왔을 것이고, 컴퓨터가 주는 편리함에 익숙해져 있을 것입니다. 하지만 면접을 보는 동안에는 문법 강조 기능이나 코드 완성, 컴파일링 기능이 갖추어진 도구의 도움을 받을 수 없습니다. 종이에 코딩하면서 같은 상황에 대비하여야 합니다.3. 코드를 테스트해봅니다. 역시 종이 위에. 일반적인 경우뿐 아니라, 기본 조건 그리고 오류 발생 ..
Oracle, Java 특허 침해로 Google 제소, Google은 강경 대응 원문 : TechCrunch Japan, 2010.08.14 지난 12일 오라클 Oracle 이 안드로이드 Android 플랫폼에 자바 Java 가 사용된 것과 관련해 구글 Google 을 제소했다. 오라클은 구글이 안드로이드용으로 개발한 자바 호환기술인 '달빅 Dalvik'이 오라클의 7가지 특허를 침해했다고 주장했다. 오라클은 작년 선 마이크로시스템즈 Sun Microsoft 를 인수하면서 자바 특허권을 취득했으며, 이번 소송을 통해 구글에게 거액을 요구할 것으로 보인다. 이와 관련하여 침묵으로 일관하던 구글이 13일 성명을 발표했다. 구글은 "오라클이 근거없는 소송으로 구글과 오픈소스 자바 커뮤니티를 공격한 것에 유감을..