자료구조와 알고리듬 With Java/[zerobase] Algorithm 7

Chapter 02. 선형 자료구조

2.1 자료구조 소개 Def) 자료 구조(Data Structure): 자료를 효율적으로 관리하기 위한 구조 - 목적에 맞게 사용한 자료구조는 실행시간 단축이나 메모리 용량 절감 효과가 있다. - 선형 자료구조 / 비선형 자료구조 Note) 자료구조의 구현 - 추상 자료형(absract Data type, ADT) -> 자료 형태와 자료에 대한 연산을 정의한 것 -> 구체적인 구현 방법은 명시하지 않는다. (추상 클래스, 인터페이스) 2.2 배열 Note) 배열 - 데이터가 메모리 상에 연속적으로 저장된다 . - 데이터와 인덱스가 1:1 대응으로 구성된다. - 단점 -> 데이터 추가/ 삭제가 번거롭다. -> 미리 최대 길이를 정해서 생성한다. -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배..

[Java 핵심 복습]

1.컴퓨터의 구조 - CPU, 주기억장치(메모리), 보조기억장치(SSD, HDD, USB, ..), 입력장치, 출력장치 2. 파일 확장자와 자바에서 사용하는 파일들 - 파일: 컴퓨터 상에서 의미를 가지고 있는 논리적인 단위 -> 텍스트 파일 -> 바이너리 파일(binary) - 확장자를 알면 어떤 파일인지 알 수 있다. - 자바 소스 파일: HelloWorld.java - 자바 바이트 코드: HelloWorld.class. - 자바 아카이브(java archive, jar): 자바 클래스 파일과 클래스에서 이용하는 리소스 파일 및 메타 데이터를 포함하여 배포 및 실행을 목적으로 하나의 파일로 묶어 놓은 포맷(zip으로 묶여 있음) - 웹 아카이브(web archive, war): 서블릿 클래스 파일, J..

Part 01. 연습문제 풀이 3 [zerobase]

1. 배열의 숫자들 중복 제거해서 나타내기 - 단, 새로운 배열이나 set사용은 금지 - 중복 제거된 원수의 개수를 나타내는 변수 idx를 선언한다. - nums배열에 새롭게 값을 넣을 때는 nums[idx++]을 꼭 후치로 넣어준다. import java.util.*; public class Practice1 { public static void solution(int[] nums) { int idx = 0; // 중복 제거한 데이터 개수 for(int num : nums) { // 인덱스가 첫번째이거나 이전 숫자보다 커지는 경우 if (idx == 0 || num > nums[idx - 1]) { nums[idx++] = num; } } System.out.print("[" + idx + "]"); ..

Part 01. 연습문제 풀이 2 [zerobase]

1. 로마 숫자 표기를 정수로 바꾸기 - map을 이용해서 각각의 문자에 해당하는 값을 함께 넣어준다. - s를 chararray로 바꿔서 작은 값을 가지는 키가 앞에 오면 그 값을 마이너스하도록 sum 식을 세운다. - 가장 마지막 글자는 더한다. import java.util.HashMap; public class Practice1 { public static void solution(String s) { HashMap map = new HashMap(); map.put('I', 1); map.put('V', 5); map.put('X', 10); map.put('L', 50); map.put('C', 100); map.put('D', 500); map.put('M', 1000); int sum = ..

Part.01연습문제 풀이 [zerobase]

1. 숫자를 거꾸로 출력하기 package src; public class Practice1 { public static void solution(int num) { int answer = 0; if(0 == num) { System.out.println(answer); return; } String str = ""; if(num < 0) { num *= -1; while (0 != num) { str += num % 10; num /= 10; } answer = Integer.parseInt(str); System.out.println(-1 * answer); return; } while(0 != num){ str += num % 10; num /= 10; } answer = Integer.parseI..