a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Daegu", "Pusan"]
str01 = "S"
for i in a:
str01 = str01 + i[1]
print(str01)
🖍 Seynaau
최초의 대문제 S에서 뒤에 오는 것을 더해서 출력.
리스트의 각 요소들을 빼와서 1번 인텍스(2번째 문자)를 가져옴.
다음 SQL문을 해당하는 테이블을 작성하시오.
SELECT B
FROM R1
WHERE C IN (SELECT C FROM R2 WHERE D = 'k');
<R1>
A | B | C |
---|---|---|
1 | a | x |
2 | b | x |
1 | c | w |
3 | d | w |
<R2>
C | D | E |
---|---|---|
x | k | 3 |
y | k | 3 |
z | s | 2 |
🖍
WHERE 조건문 :SELECT C FROM R2 WHERE D = 'k'
의 결과
🖍 MC/DC(Modified Condition/Decistion Coverage, 변형 조건/결정 커버리지)
MC/DC는 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지이다.
- DC(Decision Coverage) : Branch Coverage라고도 하며, 소스 코드의 모든 조건문에 대해 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계.
- CC(Condition Coverage) : 소스 코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스 설계.
- C/DC(C/D Coverage) : 전체 조건식뿐만 아니라 개별 조건식도 True 한 번, False 한 번 결과가 되도록 수행하는 테스트 커버리지.
- SC(Statement Coverage) : 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계
- MCC(Mutiple Conditon Coverage) : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
- https://velog.io/@m_ngyeong/Application-Testing
#include <stdio.h>
#include <string.h>
void isUpper(char *str);
void isLower(char *str);
void isNum(char *str);
char str[] = "It is 8";
int main() {
int i = 0;
while(i<strlen(str)){
char ch = str[i];
if(ch >= 'A' && ch <= 'Z'){
isUpper(&str[i]);
}
else if(ch >= 'a' && ch <= 'z'){
isLower(&str[i]);
}
else if(ch >= '0' && ch <= '9'){
isNum(&str[i]);
}
i++;
}
printf("%s", str);
return 0;
}
void isUpper(char *str){
*str = (*str - 'A' + 5) % 26 + 'A';
}
void isLower(char *str){
*str = (*str - 'a' + 10) % 26 + 'a';
}
void isNum(char *str){
*str = (*str - '0' + 3) % 10 + '0';
}
🖍 Nd sc 1
- ASCII Code에 따라 문자를 계산할 수 있음. (https://www.ascii-code.com/)
'0': 48 ~ '9': 57, 'A': 65, 'a': 97
❶('I' - 'A' + 5) % 26 + 'A';
= (73 - 65 + 5 ) % 26 + 65
= (8 + 5) % 26 + 65 = 13 + 65
= 78
∴ N
❷('t' - 'a' + 10) % 26 + 'a';
= (116 - 97 + 10) % 26 + 97
= (19 + 10) % 26 + 97 = 3 + 97
= 100
∴ d
❸('i' - 'a' + 10) % 26 + 'a';
= (105 - 97 + 10) % 26 + 97
= (8 + 10) % 26 + 97 = 18 + 97
= 115
∴ s
❹('s' - 'a' + 10) % 26 + 'a';
= (115 - 97 + 10) % 26 + 97
= (18 + 10) % 26 + 97 = 2 + 97
= 99
∴ c
❺('8' - '0' + 3) % 10 + '0';
= (56 - 48 + 3) % 10 + 0 = 11 % 10
= 1시저 암호/카이사르 암호(Caesar cipher) 알고리즘
암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 방식의 알고리즘을 말한다.
[이미지 참고: https://ko.wikipedia.org/wiki/카이사르_암호]
- 카이사르 암호는 각각의 알파벳을 일정한 거리만큼 밀어 글자를 치환하는 방식으로 암호화한다. 위 예제에서는 3글자씩 밀어서 암호화하기 때문에
B
는E
로 치환됨.
참고,
기출 문제 : https://newbt.kr/시험/정보처리기사%2520실기
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.
https://youtu.be/0sWcTYhi0MQ?si=8BR39eZjgtSyzg3x
https://cafe.naver.com/soojebi