public class Main { public static void check(int[] x, int[] y) { if(x==y) System.out.print("O"); else System.out.print("N"); } public static void main(String[] args) { int a[] = new int[] {1, 2, 3, 4}; int b[] = new int[] {1, 2, 3, 4}; int c[] = new int[] {1, 2, 3}; check(a, b); check(b, c); check(a, c); } }
시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
[테이블] 사원 [사원번호(PK), 이름, 나이, 부서] 부서 [사원번호(PK), 이름, 주소, 나이] ① 신입사원이 들어와서 부서 테이블에 새로운 사람을 추가 INSERT INTO 부서 (사원번호, 이름, 주소, 나이) ( ① ) (240728, '홍길동', '서울', 30); ② 부서 테이블에서 추가한 사원을 검색한 후 사원 테이블에 추가 INSERT INTO 사원 (사원번호, 이름, 나이, 부서) ( ② ) 사원번호, 이름, 나이, ‘영업’ FROM 부서 WHERE 이름 = '홍길동'; ③ 전체 사원 테이블 조회 SELECT * ( ③ ) 사원; ④ 사원의 퇴사로 인해 부서에 해당하는 값을 '퇴사'로 변경 UPDATE 사원 ( ④ ) 부서 = '퇴사' WHERE 사원번호 = 240728;
- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다. - 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다. - AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.
실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성하며, 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로써 제공되는 형태이다.
- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다. - 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있다. - 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않게 한다. - Cursor라고도 한다.
def cnt(str, p): result = 0 for i in range(len(str)): sub = str[i:i+len(p)] if sub == p: result += 1 return result str = "abdcabcabca" p1 = "ca" p2 = "ab“ print(f'ab{cnt(str, p1)} ca{cnt(str, p2)}')
( ① ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식이다. ( ② ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식이다.
#include void swap() { int a = 11; int b = 19; int t = a; a = b; b = t; } int main() { int a = 11; int b = 19; swap(); switch(a) { case 1: b += 1; case 11: b += 2; default: b += 3; break; } printf("%d", a-b); }
#include #include void func(char *d, char *s) { int sum = 0; while (*s) { *d = *s; d++; s++; } *d = ' '; } int main() { char* str1 = "first"; char str2[50] = "teststring"; int result = 0; func(str2, str1); for (int i = 0; str2[i] != ' '; i++) { result += i; } printf("%d", result); return 0; }
interface Number { int sum(int[] a, boolean odd); } public class Main { public static void main(String[] args) { int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; OENumber OE = new OENumber(); System.out.print(OE.sum(a, true) + ", " + OE.sum(a, false)); } } class OENumber implements Number { public int sum(int[] a, boolean odd) { int result = 0; for(int i=0; i < a.length; i++) { if((odd && a[i] % 2 != 0) || (!odd && a[i] % 2 == 0)) result += a[i]; } return result; } }
답 : A ➝
- 대칭키 알고리즘으로 1997년 NIST(미국 국립기술표준원)에서 DES를 대체하기 위해 생성되었다. - 128비트, 192비트 또는 256비트의 가변 키 크기와 128비트의 고정 블록 크기를 사용한다. - 높은 안전성과 효율성, 속도 등으로 인해 DES 대신 전 세계적으로 많이 사용되고 있다.
#include int main() { int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int* parr[2] = {arr[1], arr[2]}; printf("%d", parr[1][1] + *(parr[1]+2) + **parr); return 0; }
public class Main { public static String rf(String str, int index, boolean[] seen) { if(index < 0) return ""; char c = str.charAt(index); String result = rf(str, index-1, seen); if(!seen[c]) { seen[c] = true; return c + result; } return result; } public static void main(String[] args) { String str = "abacabcd"; int length = str.length(); boolean[] seen = new boolean[256]; System.out.print(rf(str, length-1, seen)); } }
- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다. - 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다. 답 : ( ) Coupling
#include struct node { int n1; struct node *n2; }; int main() { struct node a = {10, 0}; struct node b = {20, 0}; struct node c = {30, 0}; struct node *head = &a; a.n2 = &b; b.n2 = &c; printf("%d", head -> n2 -> n1); return 0; }
public class Main { public static void main(String[] args) { String str = "ITISTESTSTRING"; String[] result = str.split("T"); System.out.print(result[3]); } }