본문 바로가기

Language

(105)
[Python] 문자열 함수 문자열 자료형은 자체적으로 함수를 가지고 있다. -> 문자열 내장 함수 사용 형식 : 문자열.함수명() count() - 문자 개수 세기 해당 문자가 몇 번 있는지 세어 반환 >>> a = "hobby" >>> a.count('b') 2 find() - 위치 알려주기 문자열에서 찾는 문자가 처음으로 나온 위치를 반환 찾는 문자가 존재하지 않으면 -1을 반환 >>> a = "Python is the best choice" >>> a.find('b') 14 >>> a.find('k') -1 index() - 위치 알려주기 문자열에서 찾는 문자가 처음으로 나온 위치를 반환 찾는 문자가 존재하지 않으면 에러 발생 >>> a = "Python is the best choice" >>> a.index('b') 14..
[Python] 문자열 (연산하기, 인덱싱과 슬라이싱, 포맷팅) 문자열 문자열: 문자, 단어 등으로 구성된 문자들의 집합 문자열은 따옴표로 둘러싸여져 있음 "a" "123" "Life is too short, You need Python" 문자열 자료형 만드는 4가지 방법 - 큰따옴표(")로 양쪽 둘러싸기 - 작은따옴표(')로 양쪽 둘러싸기 - 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기 - 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기 문자열에 따옴표 포함시키기 - 문자열에 작은따옴표(') 포함시키기 -> 문자열을 큰따옴표로(") >>> food = "Python's favorite food is perl" - 역슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기 >>> food = 'Python\'s favorite fo..
[Java] Input/Output 정리 System.out System.out.println(); System.out.println("%d", n); - 실수형, 문자형 자료 출력 가능 Scanner next[자료형]으로 입력받을 수 있음 hasNext[자료형]을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있음 두 수 입력 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a, b; a = scanner.nextInt(); b = scanner.nextInt(); System.out.println(a + b); } } 입력에서 정수가 주어지는 동안 계속 입력 받음 public class Main..
[C++] OOP - 생성자와 소멸자 생성자 생성자는 객체 생성 시 자동으로 호출되면서 객체를 초기화 해주는 함수이다. Date 클래스의 day 객체를 만들면 생성자 Day(int year, int month, int day)가 호출된다. 따라서 Date의 객체를 생성할 때 생성자의 인자 year, month, day에 각각 2011, 3, 1을 전달하며 객체를 생성하게 되는 것이다. Date day(2021, 7, 9); // 암시적 방법 (implicit) Date day = Date(2021, 7, 9); // 명시적 방법 (explicit) 함수를 호출하듯이 사용하는 것이 암시적 방법, 명시적으로 생성자를 호출한다는 것을 보여주는 것이 명시적 방법인데 많은 경우 암시적 방법으로 축약해서 쓸 수 있으므로 이를 선호하는 편이다. 디폴트 ..
[C++] 공용체, 열거체 공용체 (union) 공용체는 구조체와 달리 메모리를 공유한다. 공용체들의 각 멤버들의 시작 주소는 모두 동일하다. 가장 큰 멤버 변수의 크기로 메모리를 할당받아 같은 공간에 자리잡기 때문에 한 번에 하나의 멤버 변수만 사용할 수 있다. 따라서 메모리의 크기가 제한되어 있거나 메모리를 절약하고 싶을 때 유용하지만 하나의 데이터 사용 후 데이터를 변경할 경우 원래의 데이터를 잃어버린다는 단점이 존재한다. 위 그림의 union A의 경우 j의 값을 변경함으로써 i의 값을 변경할 수 있고 i의 값을 변경함으로써 j의 값을 변경할 수 있게 된다. 공용체 A의 멤버 변수 a에만 67이란 값을 저장하고 a, b, c를 출력하면 모두 각자 선언된 데이터 타입으로 변형되어 출력된다. 열거형 (Enum) 프로그래밍을 하..
[C++] 구조체 배열 원소의 타입은 모두 동일해야 한다. 하나의 배열에서 어떤 원소는 char이고 어떤 원소는 int 일 수 없다. C++에서는 배열로 해결하지 못하는 문제를 구조체를 이용하여 해결할 수 있다. 원소의 크기가 제각각인 배열을 만드는 것이다. 배열에서는 배열의 타입만으로 모든 원소의 타입을 알 수 있었지만 구조체는 그렇지 않기 때문에 정의할 때 모든 원소의 타입을 명시해 주어야 한다. struct 구조체이름 { 멤버들..예를 들면 char str[10]; int i; }; /* 마지막에 꼭 ;를 붙인다. */ Human이라는 이름의 구조체는 3개의 멤버(int age, int height, int weight)를 가지고 있다. main 함수 내에서 Human이라는 구조체의 구조체 변수 Psi를 정의하였다...
[C++] 동적 할당 프로그램이 실행되는 런타임동안 사용자가 직접 공간의 크기나 시점을 결정하여 힙 영역의 메모리를 할당 받는것을 동적할당 이라고 한다. 사용자에 의해 메모리가 동적으로 할당이 되면 프로그램이 끝날 때 까지 유지되므로, 메모리 공간 사용이 끝나면 메모리 낭비(누수)를 줄이기 위해 명시적으로 메모리 할당을 해제 해주어야한다. 지금껏 사용하던 지역변수나 매개변수는 정적할당으로 스택영역에 메모리가 할당되어 왔는대 스택영역의 경우 메모리가 작은 크기로 제한되어 있기 때문에 그래픽 같이 용량이 큰 데이터를 저장할 경우 오버플로우의 발생으로 프로그램이 동작하지 않을 가능성이 크다. 따라서 동적할당을 이용하여 운영체제에서 관리하는 좀 더 큰 메모리 영역인 힙을 통해 정적할당의 단점을 극복 할 수있다. C 언어에서는 힙 상..
[C++] 참조자(레퍼런스) C언어에서 어떤 변수를 가리키고 싶을 때 반드시 포인터를 사용해야는데 C++에서는 다른 변수나 상수를 가리키는 방법으로 또 다른 방식을 제공한다. 이를 참조자(레퍼런스)라고 부른다. 참조자를 정의하는 방법은, 가리키고자 하는 타입 뒤에 &를 붙이면 된다. int& another_a = a; 위처럼 int형 변수의 참조자를 만들고 싶을 때는 int&를, double의 참조자를 만들고 싶을 때는 double&로 하면 된다. 심지어 int* 와 같은 포인터 타입의 참조자를 만들려면 int*&로 쓰면 된다. 위와 같이 선언함으로써 another_a는 a의 참조자가 되었다. 즉, another_a는 a의 또 다른 이름이라고 컴파일러에게 알려주는 것이다. 따라서 another_a에 어떤 작업을 수행하든 사실상 a에..