1. C언어 연산자
1.1 산술 연산자
: +, -, *, /, %
1.2 관계 연산자
: ==, !=, >, <, >=, <=
1.3 논리 연산자
: &&, ||, !
1.4 Bitwise 연산자
①shift 연산자 : <<, >>
ex)
i << j : i의 이진수에서 j만큼 비트를 왼쪽으로 옮긴다.
i >> j : i의 이진수에서 j만큼 비트를 오른쪽으로 옮긴다.
*bitwise shift 연산자는 다른 산술 연산자보다 우선순위가 낮다.
②이진 연산자 : &, |, ^, ~
ex)
a & b : 이진수 표현에서 각 자리가 둘 다 1이면 1, 나머지는 0이다.
a | b : 이진수 표현에서 각 자리가 둘 다 0이면 0, 나머지는 1이다.
a ^ b : 이진수 표현에서 각 자리가 다르면 1, 같으면 0이다.
~a : a의 이진법 표현에서 0과 1을 바꾼 값이다.
1.5 대입 연산자(Assignment Operator)
①단순 대입 연산자(Simple Assignment) : =(변수에 값을 저장할 때 사용)
②복합 대입 연산자(Compound Assignment) : +=, -=, *=, /=, %=, &=, |=, ^=(변수의 값을 업데이트 하는 연산자)
2. 연산자의 우선순위
연산자 | 우선순위 | 같은 우선순위의 연산자가 둘 이상 있을 때 |
+, -(Unary) | 가장 높음 | 오른쪽부터 연산 |
*, /, % | 보통 | 왼쪽부터 연산 |
+, - | 가장 낮음 | 왼쪽부터 연산 |
3. 2의 보수
이진법 표현의 수에서 0과 1을 바꾼 후 1을 더한 수다.
ex) 3=11(2) → 11111111 11111111 11111111 11111101
4. 함수
4.1 함수의 정의
[반환 값 타입] [함수명] ([타입] [매개변수], ...){
변수 선언
각종 statement들
...
return 값;
}
4.2 함수의 사용
함수명을 먼저 쓰고 괄호안에 인자를 넣는다.
인자의 개수는 함수의 정의에 사용된 매개변수의 개수와 일치하고 자료형이 같아야 한다.
4.3 함수의 선언
[반환 값 타입] [함수명] ([타입] [매개변수], [타입] [매개변수], ...);
[반환 값 타입] [함수명] ([타입], [타입], ...);
*main함수 뒤에 함수를 정의하고, main함수 앞에 선언할 수 있다.
4.4 인자
①call by value
인자를 사용할 때 값이 복사되어 넘어가므로 함수 안에서 인자의 값이 바뀌어도 변수 값은 변하지 않는다.
②reference by value
인자가 변수의 주소 값을 참조하므로 함수 안에서 참조 연산자로 인자를 수정하면 변수 값도 수정된다.
4.5 return문
return [수식];
반환 값의 타입이 void가 아닌 함수는 반드시 return문으로 끝내야 한다.
반환 값이 void로 정의된 함수는 return이 필요없다.
4.6 재귀함수
함수 안에서 자기 자신 함수를 부르는 것이다.
ex)
#include <stdio.h>
int fact(int n){
if(n==1) return 1;
else return n*fact(n-1);
}
int main(){
printf("5! = %d\n", fact(5));
return 0;
}
SWEA 2043
서랍의 비밀번호가 생각이 나지 않는다.
비밀번호 P는 000부터 999까지 번호 중의 하나이다.
주어지는 번호 K부터 1씩 증가하며 비밀번호를 확인해 볼 생각이다.
예를 들어 비밀번호 P가 123 이고 주어지는 번호 K가 100 일 때, 100부터 123까지 24번 확인하여 비밀번호를 맞출 수 있다.
P와 K가 주어지면 K부터 시작하여 몇 번 만에 P를 맞출 수 있는지 알아보자.
[입력]
입력으로 P와 K가 빈 칸을 사이로 주어진다.
[출력]
몇 번 만에 비밀번호를 맞출 수 있는지 출력한다.
'알고리즘' 카테고리의 다른 글
[SWEA] 10726/8931 (0) | 2020.10.02 |
---|---|
[SWEA] 9940/10032 (0) | 2020.09.24 |
[SWEA] 10570/10200 (0) | 2020.09.18 |
C정리 3주차 (0) | 2020.07.11 |
C정리 1주차 (0) | 2020.07.06 |