출제 : [2023년 2회 기출]
public class Main {
static void func(String[] m, int n){
for(int i=1; i<n; i++){
if(m[i-1].equals(m[i])){
System.out.print("O");
}
else {
System.out.print("N");
}
}
for(String mo:m){
System.out.print(mo);
}
}
public static void main(String[] args){
String[] m = new String[3];
m[0] = "A";
m[1] = "A";
m[2] = new String("A");
func(m, 3);
}
}
🖍 OOAAA
if(m[i-1].equals(m[i]))
equal()
: 객체끼리 내용만 비교 (기본 자료형에서 사용불가)==
: 기존 자료형일 경우 내용 비교, 참조형일 경우 주소의 값 비교m[0].equals(m[1])
: truem[1].equals(m[2])
: true
➡️ OO
for(String mo:m)
➡️ AAA
public class Main { public static void main(String[] args){ String[] m = new String[3]; m[0] = "A"; m[1] = m[0]; m[2] = new String("A"); // == 연산자는 주소를 비교 System.out.println(m[0] == m[1]); // true, m[1]에 m[0]값을 넣었으므로 주소를 같이 공유 System.out.println(m[0] == m[2]); // false, m[0]과 m[2]는 각각 생성 되었으므로 주소가 다름 // equals() 는 내용을 비교 System.out.println(m[0].equals(m[1])); // ture System.out.println(m[0].equals(m[2])); // true // 내용을 비교하기에 abc 내용이 같으므로 true 반환 } }
def test(ls):
for i in range(len(ls) // 2):
ls[i], ls[-i-1] = ls[-i-1], ls[i]
ls = [1,2,3,4,5,6]
test(ls)
print(sum(ls[::2]) - sum(ls[1::2]))
🖍 3
len(ls)
= 6
∴len(ls) // 2
= 3for i in range(3):
ls[0], ls[-1] = ls[-1], ls[0]
=ls[0], ls[5] = ls[5], ls[0]
∴ls = [6,5,4,3,2,1]
ls[::2]
= [6, 4, 2]ls[1::2]
= [5, 3, 1]
∴ (6+4+2) - (5+3+1) = 3
[employee]
no | first_name | last_name | project_id |
---|---|---|---|
1 | John | Doe | 10 |
2 | Jim | Carry | 20 |
3 | Rachel | Redmond | 10 |
[project]
project_id | name |
---|---|
10 | Alpha |
20 | Beta |
10 | Gamma |
SELECT count(*)
FROM employee e JOIN project p ON e.project_id = p.project_id
WHERE p.name IN (SELECT name
FROM project p
WHERE p.project_id IN (SELECT project_id
FROM employee e
GROUP BY e.project_id
HAVING count(*) < 2));
🖍 1
(SELECT project_id FROM employee e GROUP BY e.project_id HAVING count(*) < 2)
project_id 20 (SELECT name FROM project p WHERE p.project_id IN((...))
name Beta
CREATE TABLE employee
( no NUMBER NOT NULL,
first_name VARCHAR(10) NOT NULL,
last_name VARCHAR(10) NOT NULL,
project_id NUMBER NOT NULL);
CREATE TABLE project
( project_id NUMBER NOT NULL,
name VARCHAR(10) NOT NULL);
INSERT INTO employee(no, first_name, last_name, project_id)
VALUES(1, 'John', 'Doe', 10);
INSERT INTO employee(no, first_name, last_name, project_id)
VALUES(2, 'Jim', 'Carray', 20);
INSERT INTO employee(no, first_name, last_name, project_id)
VALUES(3, 'Rachel', 'Redmond', 10);
INSERT INTO project(project_id, name)
VALUES(10, 'Alpha');
INSERT INTO project(project_id, name)
VALUES(20, 'Beta');
INSERT INTO project(project_id, name)
VALUES(10, 'Gamma');
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
출제 : [2024년 1회 기출]
🖍 12
LRU(Least Recently Used) :
LRU는 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법이다.
ICMP, 송신 주소를 공격 대상의 IP 주소로 위장하고, 수신 주소를 해당 네트워크 라우터의 브로드캐스트 주소로 설정하는 공격으로 과부화 시키는 기법이다. ICMP 패킷을 크게 만들어서 과부화 시키는 죽음의 핑과 같은 서비스 공격 유형이다.
출제 : [보안02]
🖍 스머핑(Smurfing) / 스머프(Smurf)
#include <stdio.h>
int increase(){
static int x = 0;
x += 2;
return x;
}
int main(){
int x = 1;
int sum = 0;
for(int i=0; i<4; i++){
x++;
sum += increase();
}
printf("%d", sum);
}
🖍 20
i=0
일 때,static int x=2
∴sum=2
i=1
일 때,static int x=4
∴sum=2+4
i=2
일 때,static int x=6
∴sum=2+4+6
i=3
일 때,static int x=8
∴sum=2+4+6+8
#include <stdio.h>
void increaseNumber()
{
int num1 = 0; // 변수 선언 및 값 초기화
printf("%d\n", num1); // 변수 num1의 값을 출력
num1++; // 변수의 값을 1씩 증가
}
int main()
{
increaseNumber(); // 0
increaseNumber(); // 0
increaseNumber(); // 0
increaseNumber(); // 0: 변수가 매번 생성되고 사라지므로 0이 출력됨
return 0;
}
num1
은 지역 변수이므로 increaseNumber()
를 벗어나면 값이 사라지며,increaseNumber()
를 호출했을 때 이전 결과와는 상관없이 새로운 변수가 생성됨#include <stdio.h>
void increaseNumber()
{
static int num1 = 0; // 정적 변수 선언 및 값 초기화
printf("%d\n", num1); // 정적 변수 num1의 값을 출력
num1++; // 정적 변수 num1의 값을 1 증가시킴
}
int main()
{
increaseNumber(); // 0
increaseNumber(); // 1
increaseNumber(); // 2
increaseNumber(); // 3: 정적 변수가 사라지지 않고 유지되므로 값이 계속 증가함
return 0;
}
🖍 VPN
2021년 2회 기출
( ) 패턴은 객체 간의 상호 작용하는 방법과 책임을 분배하는 방법에 중점을 두는 디자인 패턴으로 Command, Interpreter, Memento, Observer, Visitor등이 존재한다.
🖍 행위
①
②
③
(보기)
㉠ 조건/결정 커버리지
㉡ 결정 커버리지
㉢ 조건 커버리지
㉣ 분기 커버리지
㉤ 변경 조건/결정 커버리지
㉥ 문장 커버리지
㉧ 다중 조건 커버리지
🖍 ① ㉥ 문장 커버리지, ② ㉣ 분기 커버리지, ③ ㉢ 조건 커버리지
① 다른 테이블 릴레이션의 기본키(Primary Key)를 참조하며, 데이터 무결성을 유지하는데 중요한 역할을 하는 키
② 유일성과 최소성 만족하는 키
③ 후보키 주에서 기본 키로 선택되지 않은 나머지 키
④ 유일성만 만족, 최소성 만족하지 못하는 키
🖍 ① 외래키, ② 후보키, ③ 대체키, ④ 슈퍼키
참고,