분류 전체보기

    [실4] 10773 - 제로

    #pragma region 라이브러리#include #include #include #include #include #include #include #include using namespace std;#pragma endregion#pragma region 최적화용#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define x first#define x secondusing IntPair = pair;using DoubleVec = vector>;using Vec = vector;// 상하좌우IntPair dir[]{ { 1, 0 }, {-1, 0 }, { 0, -1 }, { 0, 1 }};#pragma endregionint main() { int t;..

    [브1] 10798 - 세로읽기

    #include #include #define SIZE 9#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define x first#define x secondusing namespace std;int main() { int n = 5; vector v(n); while (n) { int idx = 5 - n; cin >> v[idx]; n--; } for (int x = 0; x

    [브1] 14467 - 소가 길을 건너간 이유 1

    #include #include using namespace std;int main() { int n; cin >> n; vector v(n + 1, -1); int cnt = 0; while (n--) { int a, b; cin >> a >> b; int cur = v[a]; if (v[a] != b) { v[a] = b; // 첫 초기화 값 if (cur == -1) continue; cnt++; } } cout

    [Python] 문자열 뒤집는 3가지 방법

    Slice / 슬라이싱시작 인덱스 또는 끝 인덱스 또는 step을 넣지 않는다면, 전체를 뜻한다.num = [1,2,3,4,5]print(num[::]) # [1,2,3,4,5] / 전체print(num[2::] # [3,4,5] / index 2부터 끝# step의 의미 => 증가폭num = [1,2,3,4,5,6,7,8,9,10]num[1::2] # index 1번째부터 끝까지 2씩 증가하며 sliceprint(num[1::2]) # [2, 4, 6, 8, 10]-index는 끝 인덱스부터 차례대로 -1 -2 -3 ... 인덱스 값을 뜻하며 전체 길이를 알 수 없을때 용이나게 쓰인다.num = [1, 2, 3, 4, 5]num[-1] # 마지막 요소인 5print(num[-1]) # 5num[1:-1..

    [Python] swap, 두 개의 변수를 교환하는 방법

    변수a = 10b = 20# a와 b를 교환a, b = b, aprint(a, b)# 출력# 20 10 또 다른 방법으론 swap 함수def swap(a, b): temp = a a = b b = temp return a, b a = 10b = 20# a와 b를 교환swap(a, b)print(a, b)# 출력# 20 10 n개 이상도 가능하다a = 10b = 20c = 30a,b,c = c,b,aprint(a,b,c)# 출력# 30 20 10 리스트arr1 = [1,2,3]arr2 = [4,5,6]arr1 , arr2 = arr2, arr1print(arr1, arr2)# 출력# [4, 5, 6] [1, 2, 3]#요소 위치변경하기arr = [1,2,3,4]arr[0],arr[1] = arr[..

    [Java] Comparable과 Comparator : 비교를 위한 인터페이스

    Comparable 인터페이스Comparable은 자기 자신과 매개변수 객체를 비교할 수 있도록 만들어주는 인터페이스이다. 이 인터페이스를 채택하여 구현하면 compareTo 메서드를 통하여 객체간에 비교가 가능해진다.Comparable 인터페이스와 Comparator 인터페이스Comparable과 비슷한 기능을 하는 인터페이스로 Comparator가 있다. 둘의 차이점은 다음과 같다.1) 구현해야 하는 메서드의 차이Comparable은 compareTo(T o1)을 구현해야 한다.Comparator는 compare(T o1, T 02)를 구현해야 한다. 매개변수가 2개이다. 2) 사용 방법의 차이Comparable은 자기 자신과 다른 객체를 비교한다.Comparator는 매개변수로 들어오는 두 객체를 ..

    [Java] Collections 클래스

    collection vs Collection vs Collectionscollection)데이터나 집합이나 그룹, 객체가 저장되고 반복되는 자료구조 Collection인터페이스(java.util.Collection 프레임워크)Collection '프레임워크' 내에 있는 Collection '인터페이스'여러 요소들을 담기 위해 만들어졌기 때문에, Container 객체라고도 불림Set, List, Queue 인터페이스가 하위 인터페이스로서 있음ex) ArrayList : Collection 인터페이스 → List 인터페이스 → ArrayList 클래스로 구현을 하는 것Collectionsutility 클래스 (java.util.Collections 클래스)Collection인터페이스이며, Iterable을..

    [Python] 연산자

    연산자피연산자를 이용해 계산을 하는 기호산술 연산자 : +, -, *, /, %, //, **할당 연산자 : =, +=, -=, *=, /=, %=, //=비교 연산자 : >, >=, 논리 연산자 : and, or, not정수, 실수의 산술 연산에서는 기본적으로 범위가 큰 자료형으로 형변환된다.산술 연산자덧셈)정수, 실수 덧셈num1 = 9; num2 = 3result = num1 + num2print(f'result : {result}')fNum1 = 1.3; fNum2 = 3.14result = fNum1 + fNum2print(f'result : {result}')result = fNum1 + num1print(f'result : {result}')문자(열) 덧셈 : 각 문자를 연결(나열)str1 ..

    [Java] Generic 제네릭

    사용법다이아몬드 연산자 ()에 타입을 정의해주면 되지만 명명 규칙이 존재한다.E : 요소(element)K : 키(key)N : 숫자(Number)T : 타입(type)V : 값(value)S, U, V : 2,3,4번째 선언된 타입장점컴파일 타임때 타입추론을 통한 타입에러를 사전에 잡을 수 있다.컴파일러가 타입추론을 통한 타입 캐스팅을 자동으로 해준다.코드의 재사용성이 매우 높아진다.컴파일 타임 때 타입 추론을 통한 타입 에러를 사전에 잡을 수 있다public interface List extends Collection {...} List를 사용할 때 우리는 다이아몬드 연산자 () 안에 어떠한 타입을 지정하고 사용한다. Java 7 버전 이후로 도입됐다.List string = new ArrayList..

    DoS 및 DDoS 정리

    서비스 공격 거부 (DoS, Denial of Service) 1. 정의 : 공격 대상 시스템이 정상적인 서비스를 할 수 없도록 만드는 공격 2. 목적 : 가용성 저하 3. 주요 공격 : SYN Flooding Attack, 스머프 공격(Smurf Attack) 등 4. 스머프 공격(Smurf Attack), 스머핑(Smurfing)  1) 희생자의 스푸핑(Spoofing)된 원본 IP로 브로드캐스팅 방식으로 ICMP(Internet Control Message Protocol) 패킷 전송  2) 전달받은 시스템들은 원본 IP로 ICMP 응답 메시지 전송  3) 희생자 시스템은 ICMP 트래픽 과부화로 정상적인 서비스 불가능  ※ IP Spoofing : 네트워크의 취약점을 이용하여 해커가 자신의 IP를..