2025/10 15

알고리즘과 자료구조 02 Brute-force 전략 (1)

Brute-force 전략 1. brute-force(억지) 전략 1) brute-force(억지) 전략의 개요- 답을 찾기 위해 모든 가능한 경우를 전부 확인 또는 수행하는 단순한 방법- 주로 반복 기법 활용- 컴퓨터의 빠른 성능 활용 2) 예시1. 1-100까지 합계 구하기- sum = 1+2+3+...+100- 반복문으로 구현 3) 예시2. 9ⁿ을 구하기- result = 9*9*9*...*9 2. brute-force(억지) 전략 예시 1) 오름차순으로 정렬된 숫자들의 리스트에서 최대값을 찾는 방법- 첫번째 값을 max로 초기화- 리스트의 두번째부터 마지막 원소를 현재의 max와 비교해 max가 작으면 max를 리스트의 원소값으로 변경 2) 서울에서 출발해 대전, 부산, 광주를 모두 방문하고 ..

알고리즘과 자료구조 01 알고리즘 개요

알고리즘 개요 1. 알고리즘(algorithm) : 어떤 문제의 해답을 구하기 위한 단계적인 절차를 순서대로 명확하게 나타낸 것 ex. 두 변수 a, b의 값을 맞바꾸는 알고리즘1. 변수 c를 준비한다2. 변수 a의 값을 변수 a에 저장한다3. 변수 b의 값을 변수 a에 저장한다4. 변수 c의 값을 변수 b에 저장한다 2. 알고리즘 조건(특성) 1) 명확성- 알고리즘을 구성하는 각 명령의 의미는 모호하지 않고 명확해야 함 2) 유한성- 알고리즘은 일정한 시간 내에 종료되어야 함- 무한루프를 포함하면 안 됨 3) 유효성- 컴퓨터에서 실행 가능해야 함- 현대의 기술로 해결이 가능해야 함 4) 효율성- 효율적인 알고리즘일수록 가치가 높음- 빠르고 메모리 사용량이 적어야 함 ex. 1-N까지 더하는 알고리즘..

JAVA 프로그래밍 기초 04 연산자, 수식, 문장

연산자 1. 연산자(operator) - 특정 연산을 수행하기 위한 기호- 연산을 수행한 결과를 반환- 연산의 대상이 되는 데이터: 피연산자(operand)- 피연산자 개수에 따라 단항, 이항, 삼항 연산자 존재- 이항 연산자는 두 항의 자료형을 일치시키고 연산을 수행 - 수식을 계산할 때 우선순위가 높은 연산자부터 계산- 우선순위가 같은 경우 대입연산자를 제외하고 모든 이항 연산자는 왼쪽부터 계산- 대입 연산자는 오른쪽부터 계산 2. 연산자의 종류 구분연산자산술+ - * / % 단항+ 단항- ++ --비교> >= 논리&& || ! 삼항?: & | ^비트& | ^ ~ > >>>대입= += -= *= /= %= &= ^= |= >>= >>=형변환(type)기타[] () . new 3. 연산자 우선순위..

JAVA 프로그래밍 기초 03 Java 기본 문법(2)

문자열과 형변환 1. String 클래스 1) 문자열을 표현하고 처리하기 위한 참조 자료형- 문자열은 String 클래스의 객체 2) 문자열 리터럴을 표현할 때 이중따옴표를 사용함ex1. String s1 = "Java";ex2. String s2 = new String("Java");. 3) String형의 변수는 기본형 변수처럼 사용할 수 있음 4) null 이라는 특별한 리터럴이 있음- 참조형 변수의 값(not available)이 될 수 있음ex. if (str != null) { ... } 2. 문자열의 +연산 1) 두 문자열을 연결하는 것(concatenation)- (문자열+기본형) or (문자열+다른 참조형)도 가능- 기본형과 참조형 값은 문자열로 형변환 가능 2) print()나 pr..

JAVA 프로그래밍 기초 02 Java 기본 문법(1)

Java 프로그램의 구조 1. 클래스 1) 클래스는 Java 프로그램의 기본 구성단위- 객체지향 프로그램은 클래스의 집합- 하나의 클래스는 하나의 .class 파일로 변환됨- Java 소스의 컴파일 과정에서 나오는 결과물 2) public class의 이름은 파일 이름과 일치해야 함ex. public class SimpleSum { ... }- 클래스는 특정 패키지에 저장됨 2. 패키지 1) 패키지- 클래스와 인터페이스의 관리를 위해 필요함- 패키지에 클래스, 인터페이스, 서브 패키지가 저장됨- 클래스-패키지 관계는 파일-폴더 관계와 같다 - 패키지는 계층 구조이다 ex. java.util.ArrayList - package 구문을 사용해 클래스가 위치할 패키지 지정- 클래스 파일의 위치를 확인해볼 ..

JAVA 프로그래밍 기초 01 Java 개요

Java 언어 1. Java 언어의 역사 - Sun Microsystems의 제임스 고슬링 박사가 창시 - 1990년 그린 프로젝트와 Oak 언어 개발 -> Java로 명칭 변경- 1995년 Java와 HotJava(Java 언어로 개발된 웹 브라우저) 발표(웹의 확산)- 1996년 1월 JDK1.0(자바 플랫폼: 자바프로그램 개발 환경) 발표- 2009년 Oracle이 Sun 인수- 2021년 Java SE 16 (JDK16) 2. Java 언어의 특징 - C/C++ 언어와 유사하나 단순함(전처리 등이 필요없음)- 플랫폼에 독립적인 언어: 플랫폼이 언어에 포함- 완전한 객체지향 언어- 웹/네트워크 프로그래밍 언어- 엄격한 자료형의 검사 -> 실행 오류를 줄인다- 예외 처리 기능 제공- 멀티 스레딩 ..

JAVA 프로그래밍 기초 00 자바 Oracle Java SE + JDK 설치 및 환경설정

Java SE 설치 Java Oracle 홈페이지 접속https://www.oracle.com/java Java SoftwareJava software reduces costs, drives innovation, and improves application services. Learn more about Java, the #1 development platform.www.oracle.com Java SE 설치파일 다운로드https://www.oracle.com/java/technologies/javase-jdk16-downloads.html Download the Latest Java LTS FreeSubscribe to Java SE and get the most comprehensive Java s..

컴퓨터C프로그래밍 07 함수

함수 정의와 호출 1. 함수 개념 1) 함수(function): 프로그램에서 원하는 특정한 작업을 수행하도록 설계된 독립된 프로그램 단위- 필요한 입력을 받아 원하는 기능을 수행한 후 결과를 반환(return) 2) 라이브러리 함수(library function)와 사용자 정의 함수(user defined function)로 구분- 라이브러리 함수: 개발환경에 만들어 놓은 라이브러리- 사용자 정의 함수: 필요에 의해서 개발자가 직접 개발하는 함수 2. C 프로그램 함수 1) 여러 함수로 구성되는 프로그램- main()함수와 필요한 다른 함수로 구성되는 프로그램 2) 함수 main()- 이름이 지정된 함수- 프로그램의 실행이 시작되는 특수한 함수- 첫 줄에서 시작해 마지막 줄을 실행한 후 종료 2) 함..

컴퓨터C프로그래밍 06 배열

배열 개요와 선언 1. 배열(array) 1) 배열 개요- 여러 변수들이 같은 배열이름으로 일정한 크기의 연속된 메모리에 저장되는 구조- 배열을 이용하면 변수를 일일이 선언하는 번거로움 해소- 배열을 구성하는 각각의 변수를 반복 구문으로 쉽게 참조 가능 2) 배열의 정의- 저장공간인 원소를 동일한 크기로 지정된 배열크기만큼 확보한 연속된 저장공간- 배열의 중요 요소: 원소 자료유형, 배열이름, 배열크기 3) 배열 선언 구문원소_자료유형 배열이름[배열크기]- 배열크기는 리터럴 상수, 매크로 상수 또는 이들의 연산식이 허용되나 변수는 사용할 수 없다- 매크로 상수는 결국 리터럴 상수로 바뀌어 컴파일되므로 문제 없이 선언 가능 4) 배열 선언 문법 오류- 변수와 const 상수는 배열크기로 사용 불가능변수와..

컴퓨터C프로그래밍 05 반복

반복 1. 반복: 순환 또는 루프(loop) - 반복 몸체(repetition body)- 반복 조건을 만족하면 일정하게 반복되는 블록- 중괄호 { } 사용 2. while / do while / for while () { // 반복몸체(loop body);;}do { // 반복몸체(loop body);; } while ();for (; ; ) {// 반복몸체(loop body);;} 3. 함수 printf() 3번 반복 호출 예제 1) 섭씨 온도는 12.46도에서 10씩 2번 증가- 각각의 화씨 온도 출력섭씨(C)화씨(F)12.4654.4322.4672.4332.4690.43 2) 화씨->섭씨 변환연산식F(화씨온도) = 9/5C(섭씨온도)+32 3) 변환연산식을 코드로 작성double celsi..