no image
[C 이론] 1. C프로그래밍 기초
When ? 1972년 Where ? AT&T사의 벨 연구소 Who ? 데니스 리치 What ? C 언어 How ? B언어 → C언어 Why ? 유닉스(unix) 개발용 고급언어 C언어의 특징 고급언어 + 저급언어 Unix를 개발하기 위해 사용 시스템 프로그래밍 언어 함수언어 이식성이 강한 언어└ 호환성유지, 다양한 표준 라이브러리 제공 풍부한 자료형 지원 다양한 제어문 지원 표준 라이브러리 함수 지원 프로그램 실행 절차 test.cpp —1️⃣ 컴파일 → test.obj —2️⃣ 링킹 → test.exe 1. 편집기로 test.cpp 소스파일(원시파일) 작성 2. 컴파일러로 소스파일을 test.obj 목적파일로 변환 (컴파일) └ 컴파일러 : 고급언어로 작성된 프로그램을 기계어로 변환시켜주는 장치 3...
2021.05.03
no image
[알고리즘 일기] 2. 피보나치 수열
​ 피보나치 수열 피보나치 수열이란 첫 번째 항과 두 번째 항이 1이고, 세 번째 항부터는 바로 앞의 두 항의 합으로 정의된 수열입니다. 예를 들어서 세 번째 항은 첫 번째 항(1)과 두 번째 항(1)을 더한 2이며, 네 번째 항은 두 번째 항(1)과 세 번째 항(2)을 더한 3이 될 것입니다. ​ 주의사항 * 파라미터로 1 이상의 자연수 n을 받고, n번째 피보나치 수를 리턴하는 재귀 함수 fib를 쓰세요. ​ ❧ 테스트 셋 def fib(n): # Code # Test : print fib(1) to fib(10) for i in range(1, 11): print(fib(i)) ❧ 출력 예시 1 1 2 3 5 8 13 21 34 55 ❧ 정답 def fib(n): if (n < 3): return ..
2021.05.02
no image
[Java] 6. 메소드 작성과 접근 지정자
메소드 오버로딩(Overloading) (같은 클래스 내에)이름이 같은 메소드 작성가능 매개변수의 개수나 타입이 서로 다르고 이름이 동일한 메소드들 💡 리턴 타입은 오버로딩과 관련이 없음 public int getSum(int i, int j){ return i + j; } public int getSum(int i, int j, int k) { return i + j + k; } 메소드 호출 객체 소멸 : new 키워드 사용 ( 생성 ) → 할당된 객체 메모리를 다시 JVM의 가용 메모리로 돌려주는 것 C/C++과 다르게 할당받은 객체를 프로그래머가 임의로 소멸 불가 └ 객체 소멸은 JVM 고유의 역할 가비지(gabage) 가리키는 레퍼런스가 하나도 없는 객체 사용 불가한 메모리 가비지 컬렉션 JVM의..
2021.05.02
no image
[Java] 5. 자바의 객체 지향적 특성
캡슐화 : 객체를 캡슐로 싸서 내부를 볼 수 없게 하는 것 객체의 본질적인 특성 외부의 접근으로 부터 보호 클래스(class) : 객체 모양을 선언한 틀(캡슐화) 메소드(멤버 함수)와 필드(멤버 변수)는 모두 클래스 내에 구현 객체 클래스의 모양대로 생성된 실체(instance) 객체 내 데이터에 대한 보호, 외부 접근 제한 상속 : 상위 개체의 속성이 하위 개체에 물려짐 하위 객체가 상위 개체의 속성을 모두 가지는 관계 자식 클래스가 부모 클래스의 속성을 물려받고 기능 확장 가능 └ extends 키워드 사용 자바는 클래스 다중 상속은 없으며 인터페이스 다중 상속은 허용한다. 다형성 : 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현 다형성 사례 메소드 오버로딩 : 같은 이름이지만 다..
2021.05.02
no image
[Java] 4. 배열과 main() 메소드
배열(Array) : 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조 배열을 이용하면 한 번에 많은 메모리 공간 할당 가능 같은 타입의 데이터들이 순차적으로 저장 인덱스를 이용하여 원소 데이터 접근 반복문을 이용하여 처리하기에 적합 배열 선언, 배열 생성, 초기화 배열 선언 int intArray[]; char charArray[]; int[] intArray; char[] charArray; 배열 생성 int Array = new int[10]; char charArray[] = new char[20]; 💡 배열 생성시 배열의 크기를 지정해주어야함! 배열 선언과 함께 초기화 int intArray[] = ; 레퍼런스 변수와 배열 배열에 대한 레퍼런스 변수 intArray 선언 int intAr..
2021.05.02
no image
[Java] 3. 자바 기본 문법
기본적인 문법사항들은 다른 프로그래밍 언어와 동일하기 때문에 간략하게, 유의해야할 사항등 잘 모르던 특징들에 대해서만 적어두었습니다! C 기본 문법사항과 동일하니 프로그래밍 문법을 더 자세히 공부하고 싶은 분들은 제 블로그내에 'C/C++' 카테고리를 확인해주세요! *ଘ⍢⃝੭* ੈ✩ 식과 연산자 연산의 종류 연산자 우선순위 같은 우선 순위의 연산자 왼쪽에서 오른쪽으로 처리가 기본 예외사항) 대입연산자, 증감, 부호, '!', 형변환시 괄호는 가장 최우선 순위 조건문 _switch_문의 경우 _break_가 매우 중요! 반복문 for문 _for_문 응용 형태 무한 반복 for(초기식; true; 증감식) for(초기식; ; 증감식) //조건식이 비어 있으면 true로 간주 초기식, 조건식은 ','로 분리하..
2021.05.02
no image
[Java] 2. 자바프로그래밍의 기본
자바의 특성 1. 플랫폼 독립성 바이트코드 2. 객체지향 상속성 다형성 캡슐화 3. 클래스로 캡슐화 클래스 내에 모든 변수(필드), 함수(메소드) 구현 클래스안에 새로운 클래스(내부 클래스) 작성 가능 4. 소스(.java)와 클래스(.class) 파일 하나의 소스 파일에 여러 클래스 작성 가능 public 클래스는 하나만 가능 소스 파일의 이름과 public으로 선언된 클래스 이름은 같아야함 컴파일된 클래스 파일(.class)에는 클래스는 하나만 존재 5. 실행 코드 배포 실행 코드 : 한 개의 class 파일 또는 다수의 class 파일로 구성 여러 폴더에 걸쳐 다수의 클래스 파일로 구성된 경우 -> jar 파일 형태로 배포 가능 main() 메소드 자바 응용프로그램의 실행은 main() 메소드에서 ..
2021.05.02
no image
[알고리즘 일기 - 파이썬] 1. 팔린드롬 문제
팔린드롬 문제 [파이썬(python) 풀이] "토마토"나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 팔린드롬(palindrome)이라고 부릅니다. 문자열 word가 팔린드롬인지 확인하는 함수 is_palindrome를 쓰세요. is_palindrome은 word가 팔린드롬이면 True를, 팔린드롬이 아니면 False를 리턴합니다. 주의사항 * 반드시 for문을 사용해야 합니다. * append, insert 메소드와 del 함수를 사용하면 안됩니다. ❧ 테스트 셋 def is_palindrome(word): # Code # test print(is_palindrome("racecar")) print(is_palindrome("stars")) print(is_palindrome("토마토")) print(i..
2021.05.01
no image
[Java] 1. 자바의 특징
컴파일 소스 : 프로그래밍 언어로 작성된 텍스트 파일 컴파일 : 소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정 소스 프로그램 → 컴파일러 → 기계어 → 프로그램 실행 자바 ) .java -> .class C ) .c -> .obj -> .exe C++) .cpp -> .obj -> .exe WORA (Write Once Run Anywhere) 🌟 한번 작성된 코드는 모든 플랫폼에서 바로 실행 C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복 네트워크에 연결된 어느 클라이언트에서나 실행 바이트 코드(byte code) 자바 소스를 컴파일한 목적 코드 CPU에 종속적이지 않은 중립적인 코드 JVM에 의해 해석되고 실행됨 JVM(Java Virtual Machine) 자바 바이트 코드를 실행하..
2021.04.06