C++ 프로그래밍
C++ 기초 프로그래밍(입출력 및 간단한 연산, 조건 반복문)
#include<iostream> using namespace std; int main(void) { int val1, val2; int result = 0; cout << "숫자 두개 입력>>"; cin >> val1 >> val2; if (val1 < val2) { for (int i= val1+1; i < val2; i++) // 사이 숫자 합이기에 for문 시작이 val1+1 로 시작 { result += i; } } else { for (int i = val2+1; i < val1; i++) { result += i; } } cout << val1 << "과" << val2 << "사이 숫자들의 합: " << result; }
Array
#include<iostream> using namespace std; int main() { char ch[6]; ch[0] = 'h'; ch[1] = 'o'; ch[2] = 'n'; ch[3] = 'g'; ch[4] = 'a'; ch[5] = '\0'; for (int i = 0; i < 5; i++) { printf("%c", ch[i]); } cout << endl; printf("%s", ch); // %s로 출력하고 싶으면 반드시 끝에 \0(null) 이 있어야함 cout << endl; printf("배열이름 ch : %p", ch); // %p:포인터 출력(주소) cout << endl; printf("배열주소 ch : %p", &ch); // 배열이름,배열주소 출력해보면 똑같은데 이 말은 배열 이름도 주소란뜻 }
1) char ch[6]="honga" 은 honga가 '문자열'의 형태로 ch에 저장됨
2) ch는 ch[0]...ch[5]에 h o n g a \0 의 형태로 저장됨
3) 문자열의 마지막에는 항상 \0이 같이 저장됨
4) %s로 불러오면 문자열의 마지막 즉 \0을 만날때까지 출력
함수 오버로딩
#include<iostream> using namespace std; void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } void swap(char* a, char* b) { char temp = *a; *a = *b; *b = temp; } void swap(double* a, double* b) { double temp = *a; *a = *b; *b = temp; } int main(void) { int num1 = 20, num2 = 30; swap(&num1, &num2); cout << num1 << ' ' << num2 << endl; char ch1 = 'A', ch2 = 'Z'; swap(&ch1, &ch2); cout << ch1 << ' ' << ch2 << endl; double db11 = 1.111, db12 = 5.555; swap(&db11, &db12); cout << db11 << ' ' << db12 << endl; return 0; }
swap(&num1,&num2) 형태로 호출하면 함수 선언시에 void swap(int a,int b) 형태의 포인터 형태로 선언해주어야함
프로그래머스(백준에서 넘어옴)
분수의 덧셈
import math def solution(numer1, denom1, numer2, denom2): boonmo=denom1*denom2 boonja=(numer1*denom2)+(numer2*denom1) gcd_value=math.gcd(boonmo,boonja) answer=[boonja//gcd_value,boonmo//gcd_value] return answer
0) 실제로 손으로 써서 분수 계산을 해보고 접근하면 더 쉽게 접근 가능할듯
1) boonmo 저장 / boonja 저장
2) math 모듈의 gcd 함수를 이용하여 최대공약수를 구한 후
3) 분모와 분자 계산을 최대공약수로 나눠주게 되면 기약분수 출력
배열 두배 만들기
def solution(numbers): answer = [] for i in range(len(numbers)): answer.append(numbers[i]*2) return answer solution([1,2,3,4,5])