본문 바로가기

Python_Matter/[CodeUp]기초 100제

(97)
1067 : [기초-조건/선택실행구조] 정수 1개 입력받아 분석하기 Q> 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자. 참고 조건/선택 실행 구조의 안에 조건/선택 실행 구조를 다시 "중첩"할 수 있다. 이는 "중첩(nested)"의 원리가 적용되는 내용으로 아래와 같은 구조가 가능하다. if(조건1) { if(조건2) //조건문의 중첩 { ... } else { ... } } else { if(조건2) { ... } else { ... } } 위와 같은 조건/선택 실행구조는 조건/선택 실행구조를 중첩해 서로 다른 4가지(2가지*2가지)의 경우에 대해 다른 실행을 할 수 있도록 해준다. ** 어떤 조건들이 맞았을 때에는 해당부분의 코드블록 내용만 실행되고, 전체 조건/선택 실행구조를 빠져나간다. 즉, 다른 부분들은 ..
1066 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기 Q> 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자. 참고 if(조건) { //코드블록1 시작 ... 실행...; ... } else { //코드블록2 시작 ... 다른실행...; ... } 의 조건/선택 실행구조는 주어진 “조건”을 검사해 참인 경우에는 코드블록1을 실행하고, 거짓인 경우에는 코드블록2를 실행한다. 예시 if(a%2==0) { printf(“%s”, “even”); } else { printf(“%s”, “odd”); } ** else는 if 없이 혼자 사용되지 않는다. 또한, else 다음에 조건이 없는 이유는? 참이 아니면 거짓이고, 거짓이 아니면 참이기 때문에... 즉 if문의 조건식의 판별 결과는 2가지 경우(참 또는 거짓)로 계산되는데, els..
1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기 Q> 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. 참고 if(조건) { //조건이 참일 때에만 실행되는 구역(코드블록의 시작) 실행1; 실행2; ... } //코드블록의 끝 의 조건/선택 실행 구조는 주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다. 예시 if(a%2==0) { printf(“%d”, a); } if(b%2==0) { printf(“%d”, b); } if(c%2==0) { printf(“%d”, c); } ** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다. a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다. 따라서, if(a%2 == 0) 는 “a가..
1064 : [기초-삼항연산] 정수 3개 입력받아 가장 작은 수 출력하기 Q> 입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자. 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다. 참고 C언어 소스코드 작성시 모든 요소들은 "순서에 따라 한 단계씩 실행" "미리 정해진 순서에 따라 하나씩 연산 수행" "그 때까지 연산된 결과를 이용해 다시 순서에 따라 하나씩 연산" ... 등의 원리가 적용된다. 따라서 3항 연산자 ? 를 중첩해(괄호로 묶는 등..) 이용하면 여러 값들을 순서대로 비교해 가장 큰/작은 값을 계산할 수 있다. 예를 들어 (a>b ? a:b)>c ? (a>b ? a:b):c 의 계산식은 a, b, c 의 값 중 가장 큰 값으로 계산된다. 잘 이해가 되지 않는다면 어떤 순서에 따라 계산될지 생각해보고 여러 가지 연산자가 동시에..
1063 : [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기 Q> 입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자. 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다. 참고 3개의 요소로 이루어지는 3항(ternary) 연산자는 "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다. - 조건식의 계산 결과가 참인 경우에는 ':' 왼쪽의 값 또는 식으로 바뀌고, - 거짓인 경우에는 ':' 오른쪽의 값 또는 식으로 바뀐다. 예를 들어 123 > 456 ? 0 : 1 과 같은 표현식은 123 > 456 의 비교연산 결과가 거짓이므로 1이 된다. 예시 printf("%d", a>b ? a:b); //두 값 중 큰 값이 출력된다. 예시 코드는 a>b 의 결과가 참(1)이면 (a>b ? a:b)의 결과는 a가 되고,..
1062 : [기초-비트단위논리연산] 비트단위로 XOR 하여 출력하기 Q> 입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자. 비트단위(bitwise) 연산자 ^(xor, circumflex/caret, 서컴플렉스/카릿)를 사용하면 된다. ** 주의 ^은 수학식에서 거듭제곱(power)을 나타내는 기호와 모양은 같지만, C언어에서는 전혀 다른 배타적 논리합(xor, 서로 다를 때 1)의 의미를 가진다. ** 비트단위(bitwise) 연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), (bitwise right shift) 가 있다. 예를 들어 3과 5가 입력되었을 때를 살펴보면 3 : 00000000 00000000 00000000 00000011 5 : 00000000 0..
1061 : [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기 Q> 입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자. 비트단위(bitwise) 연산자 |(or, vertical bar, 버티컬바)를 사용하면 된다. ** | 은 파이프(pipe)연산자라고도 불리는 경우가 있다. ** 비트단위(bitwise) 연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), (bitwise right shift) 가 있다. 예를 들어 3과 5가 입력되었을 때를 살펴보면 3 : 00000000 00000000 00000000 00000011 5 : 00000000 00000000 00000000 00000101 3 | 5 : 00000000 00000000 00000000 0000011..
1060 : [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기 Q> 입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자. 비트단위(bitwise)연산자 &를 사용하면 된다.(and, ampersand, 앰퍼센드라고 읽는다.) ** 비트단위(bitwise)연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), (bitwise right shift) 가 있다. 예를 들어 3과 5가 입력되었을 때를 살펴보면 3 : 00000000 00000000 00000000 00000011 5 : 00000000 00000000 00000000 00000101 3 & 5 : 00000000 00000000 00000000 00000001 이 된다. 비트단위 and 연산은 두 비트열이 주어졌..