전체 글 26

[C#] 입출력과 데이터

1. 입출력 - 입력 : Console.ReadLine(); // "문자열"로 입력됨 - 한 줄 출력 : Console.WriteLine("한 줄 출력"); - 출력 : Console.Write("줄 바꿈 없이 출력"); 2. 데이터 - var : 선언시 초기화 필수 - '?' : nullable, null 값 저장 가능한 데이터 ( ex. int? a = 1; ) - const : 불변 변수 이용할 경우 사용, 변수명 대문자로 설정하기 (ex. const int MIN = 0; // 최소값) - object : 다양한 데이터로 저장 가능 - int, float, double, decimal, char, bool 등 존재 3. 문자열 수 : ToString(), Parse, Convert - 문자열로 바..

Programming/C & C++ 2020.10.07

[백준/c++] 1181번 : 단어 정렬

www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net #include #include using namespace std; int main() { int n, index; cin >> n; vector str(n), res; for (int i = 0; i > str[i]; } // 벡터 안에 string 길이 순서대로 정렬 while (!str.empty()) { index = 0; str[in..

[C++] c++ 시작하기 : cout, cin, namespace, 오버로딩

1. cout, cin : 입출력하기 #include int main() { std::cout > name >> age; 와 동일 return 0; } #include 은 헤더로 input output stream 입출력을 의미한다. main함수에서 std 는 namespace로 아래에 추가 설명을 하겠다. :: 은 범위 지정 연산자로 namespace를 가리킬때 사용하는 연산자이다. cout은 console output으로 출력을 의미하고, cin은 console input으로 입력을 받게한다. 2. namespace과 using #include namespace A { void Add() { printf("A의 Add() 호출\n"); } void Minus() { printf("A의 Minus() ..

Programming/C & C++ 2020.05.18

Git 과 GitHub

버전 관리 시스템 (Version Control System) -> 소스코드를 효율적으로 관리하기 위해 만들어진 것 -> Git, Mecurial, Bazaar, Darcs 등 -> 클라이언트가 파일들의 마지막 스냅샷을 가져오는 대신 repository 전체를 복제 -> 서버 문제가 생겨도 클라이언트에 복제된 repository를 다시 서버로 복사하면 복구 됨 -> 여러 개의 repository 존재 -> 서버(GitHub) repository = 원격 repository -> 사용자 PC repository = 로컬 repository -> 여러 사용자도 서버에 직접 push, pull이 가능 p.s) 로컬 버전 관리 시스템 (Local Version Control System) 중앙집중식 버전 관리 ..

etc/study 2020.05.17

[Python] 5장 재귀와 반복 : 정렬 (Sorting)

1. 선택 정렬 (Selection sort) 재귀 버전 def selectionSort(xs): if xs != []: smallest = min(xs) xs.remove(smallest) return [smallest] + selectionSort(xs) else: return [] 꼬리재귀 버전 def selectionSort(xs): def loop(xs, ss): if xs != []: smallest = min(xs) xs.remove(smallest) return loop(xs, [smallest] + ss) #ss.append(smallest) return loop(xs,ss) else: return ss return loop(xs, []) while 루프 버전 def selectionSo..

[Python] 4장 재귀와 반복 : 자연수 계산

1. 재귀함수 vs 꼬리재귀 재귀 (recursive) 함수 꼬리 재귀 (tail recursion) 함수 계산한 결과에다 더할 수를 기억 -> 재귀 호출의 횟수만큼 저장 공간을 사용 더 이상 기억해둘 것이 없음 (답을 누적) -> 공간이 필요 없음 (공간 절약) return n + sima(n-1) 이용 return loop(counter, accumulator) 이용 +) 지역함수를 이용한 캡슐화의 장점은 ?? 2. 재귀 함수 vs while 루프 재귀 함수 while 루프 하향식 (Top-down) 상향식 (Bottom-up) 실행 논리를 직관적으로 표현 가능 BUT, 공간 효율이 떨어짐 꼬리 재귀 or while 루프같은 상향식은 공간 절약 가능 3. 재귀 vs 꼬리 재귀 vs while 루프 실..

[Python] 3장 제어구조

1. 단축 계산 (short-circuit evaluation) 수식은 이항 연산을 할 때 양쪽 피연산자의 계산 결과가 모두 있어야 계산 진행 가능하다. 그러나 논리식 계산은 왼쪽 피연산자의 계산 결과에 따라서 오른쪽 피연산자의 계산을 생략 가능하다. 즉, 왼쪽 피연산자의 계산 결과만으로 전체 계산 결과가 명백해지면, 결과에 영향을 받지 않는 오른쪽 피연산자 계산은 생략한다. - and 연산 : False and ( ) -> 오른쪽 피연산자 계산 생략, 결과 False - or 연산 : True or ( ) -> 오른쪽 피연산자 계산 생략, 결과 True ex ) 무한 loop() 를 이용한 단축 계산 확인 - def loop() : loop() #자기 자신을 호출하는 함수로, 원칙적으로는 프로그램이 영..

[Java] String 클래스와 주요 메소드

1. String 클래스(class) java.lang 패키지에 포함된 클래스로서 String 클래스는 문자열을 의미한다. 자바에서 모든 스트링 리터럴은 내부적으로 String 객체로 처리된다. 스트링 객체는 수정이 불가능하다. String s = new String("Hello"); String t = s.concat("Java"); // 스트링 s에 "Java"를 덧붙인 스트링 리턴 "Hello"인 s와 "HelloJava"인 t 객체가 존재하게 된다. 스트링 객체 s는 수정이 되지 않았다. 2. String 클래스의 주요 메소드 메소드 설명 char charAt (int index) 지정된 index에 있는 문자 값 리턴 int codePointAt (int index) 지정된 index에 있는 유..