목록Programming Language/기타 언어(C\C++\C#\Python) (11)
Slow but steady wins the race
defaultdict() - 숫자, list, set, 등으로 초기화 가능 - dictionary와 작동방식이 거의 동일한데, defaultdict()는 인자로 주어진 객체(default-factory)의 기본값을 dictionary 값의 초기값으로 지정할 수 있음 외부함수이기 때문에 import from collections import defaultdict 예시 1 A = [2,4,3,1,4,2] A_dict = defaultdict(int) for i in A: A_dict[i] += 1 # 일반적인 dictionary와 다른 부분 # A에서 개수가 1개인 값 찾기 (3과 1) for k, v in A_dict.items(): if v == 1: print("unique") defaultdict를 ..
코딩테스트를 파이썬으로 준비해보려고 오랜만에 파이썬을 만지작만지작 해보는데 걸리는게 많다... 책이나 프로그래머스 문제를 파이썬으로 풀면서 막히던 문법을 차례로 정리할 예정! 가장 기본적이었던 것.. 입력! 입력의 기본 # 숫자 입력받기 파이썬에서 데이터를 입력받는 방법 : input( ) 정수형 데이터로 처리하기 위해서는 앞에 int( ) 함수를 사용 n = int(input()) # 공백을 기준으로 구분하여 변수에 각각 정수형으로 저장하기 map( )함수를 사용하여 각각 매핑하기라고 생각하면 됨 split( )를 이용하여 공백으로 구분하고 int를 앞에 적음으로써 정수형으로 저장 n,m,k = map(int,input().split()) # 여러개의 숫자를 입력받아 공백으로 구분하여 리스트 형태로 저..
float answer; answer = 15/6; Debug.Log(answer); answer가 int형이든 float형이든 동일하게 2로 나온다. 소수점까지 나타내려면 float answer; answer = 1.0f * 15/6; Debug.Log(answer); 계산하는 과정 앞에 1.0f 를 곱해주면 된다.
C언어의 특징 1. UNIX 운영체제의 개발 도중 프로그래머에 의해 만들어짐 2. High-level과 Low-level language의 장점을 포함함 - 기계어에 준하면서 고급 프로그래밍 언어로 집적된 표현 가능함 - middle-level lang 3. 절차 지향적 4. 간결하고 범용성이 좋음 5. 메모리를 적게 사용함 6. 표준 라이브러리를 제공하며, 이식성이 뛰어남 7. 다른 프로그램 언어와 함께 혼합되어 기사용이 가능함 C언어의 단점 1. 완전한 고급언어에 비해서 상대적으로 배우기 쉽지 않음 2. UNIX가 가진 단점을 그대로 가지고 있음 3. 미약한 자료형의 검사기능, 미약한 배열에서 첨자의 범위 검사기능 C언어 컴파일러 1. IDE 제공 컴파일러 - IDE = Integrated Devel..
접근자 (accessor) : 멤버 변수 값을 반환하는 멤버 함수 설정자 (mutator) : 멤버 변수 값을 변경하는 멤버 함수 접근자와 설정자 - 일반적으로 get이나 set이 멤버함수의 이름 앞에 붙여짐 ex. getSpeed(), setSpeed() - 사용 이유 (1) 정보 은닉 클래스의 인터페이스와 구현을 분리하는 것이 좋은데, 이 이유는 구현을 변경하기 쉬워지기 때문 ex) gear 변수를 advanced_gear 변수로 변경한다고 가정 만약 외부에서 gear멤버 변수를 직접 사용했다면 gear멤버 변수의 이름 마음대로 변경 불가능 하지만, 접근자와 설정자 사용시 변경 편리 //변경 전 int getGear(){ return gear; } void setGear(ing g){ gear=g; ..
동적으로 객체 생성 - new 사용 객체에 대한 포인터 사용하여 객체 사용 명시적으로 객체 삭제 - delete 사용 Car *dynCar = new Car;//동적 객체 생성 dynCar -> speed = 100;//동적 객체 사용 delete dynCar;//동적 객체 삭제 #include #include using namespace std; class Car { public: //멤버 변수 선언 int speed; //속도 int gear;//기어 string color;//색상 //멤버 함수 선언 void speedUp() {//속도 증가 멤버 함수 speed += 10; } void speedDown() {//속도 감소 멤버 함수 speed -= 10; } void show() {//상태 출력..
함수가 외부로부터 매개 변수를 통하여 데이터를 받는 방법(함수 호출 시 인수 전달 방식) (1) 값에 의한 호출(call by value) (2) 참조에 의한 호출(call by reference) 값에 의한 호출 (= 복사본 전달) "복사본 전달"인 이유: 복사본을 아무리 바꿔도 원본이 바뀌지 않음 #include using namespace std; void swap(int x, int y); int main() { int a = 100, b = 200; cout
참조자(reference) : 변수에 별명을 붙여 접근 - 변수 var 선언 후 ref라고 하는 별명 붙이기 (& 사용) int var = 10; int &ref = var; // 참조자에 값을 대입하면 참조자가 참조하는 변수의 값이 변경됨 ref = 20; // var의 값이 20으로 변경됨 참조자 (reference) vs 포인터 (pointer) 1. 참조자는 선언과 동시에 초기화 되어야 함 int &ref;// 컴파일 에러 2. 포인터는 변수이기 때문에 포인터가 가리키는 대상은 변경될 수 있음 참조자는 자신만의 메모리 공간이 할당되지 않기 때문에 참조자가 가리키는 대상은 변경될 수 없음 int &ref = var1; ref = var2;//컴파일 에러 : 참조하는 대상을 변경할 수 없음 3. 참조..