목록PS/언어별 스킬모음 (9)
넘치게 채우기
C++에서 const auto&를 통해서 기존 배열의 주소에서 접근하여 그대로의 원소를 사용하여 메모리 공간을 절약할 수 있습니다. 배열의 가상 원소를 만들어서 참조하는 것이 아닌, 직접 접근하는 방식입니다. for(const auto& num : nums) { // do something.. } Call-by-Reference를 이용한 메모리 절약입니다. C++의 강력한 기능입니다.
C++ 순열: next_permutation()을 이용한다. 주로 do~while문화 함께 쓰인다. #include #include #include int main() { std::vector vec = {1, 2, 3}; std::sort(vec.begin(), vec.end()); do { for (int i : vec) { std::cout
C++코드 struct Segment { int x1, y1, x2, y2; }; // 두 선분이 겹치는지 확인하는 함수 bool doSegmentsOverlap(const Segment& a, const Segment& b) { return (max(a.x1, a.x2) >= min(b.x1, b.x2) && max(a.y1, a.y2) >= min(b.y1, b.y2) && min(a.x1, a.x2)
https://stackoverflow.com/questions/62869571/call-to-implicitly-deleted-default-constructor-of-unordered-set-vectorint ." This d..." data-og-host="stackoverflow.com" data-og-source-url="https://stackoverflow.com/questions/62869571/call-to-implicitly-deleted-default-constructor-of-unordered-set-vectorint" data-og-url="https://stackoverflow.com/questions/62869571/call-to-implicitly-deleted-default..
[](const pair& a, const pair& b) { if(a.first == b.first) { return a.second b.first; } pair를 담은 vector에서, 같은 값을 가졌을 때, 두번째의 값이 더 작은 값으로 정렬할 때 쓰이는 방법이다. [](자료형) {ToDO}
입출력 팁 import java.io.*; public class FastIOExample { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); // 문자열로 읽고 출력하기 String inputLine = reader.readLine(); writer.write("입력 받은 문자열: " + inputLine); // 숫자로 읽고 출력하기 int num = Integer..
입출력 import sys sys.stdin.readline() # 한줄 전체 입력받기. input()보다 빠르게 입력받을 수 있다. 개행문자 \n도 딸려오니 주의. a, b, c = map(int, sys.stdin.readline().split()) # a, b, c에 각각 넣기 형변환 int(x) # int로 변환 str(x) # 문자열로 변환 float(x) # 실수 타입 변환 chr(x) # 문자로 변환 bool(x) # 참/거짓값으며 변환(0이나 null이 아닌경우 모두 True) 수학 1e9 = 10^9 2e9 = 2 * 1e9 (INT_MAX에 거의 근접한 값이다) 1e9 + 7 # 보통 온라인 저지 사이트나 알고리즘 대회에서 값이 너무 커질 때, 오버플로우를 막기 위해서 1e9 + 7로 ..
ios_base::sync_with_stdio(false); cin.tie(null); ios_base::sync_with_stdio(false)는 C++의 iostream과 C의 stdio의 동기화를 끊습니다. 기본적으로 C++의 iostream은 C 스타일의 입출력과 동기화되도록 설계되어 있어서 C스타일의 입출력 함수도 같이 사용되는 경우가 많습니다. 이 동기화 과정에서 속도저하가 발생합니다. cin.tie(null)은 cin과 cout이 동기화되지 않도록 설정합니다. 기본적으로 cin은 cout과 묶여서 작업이 있을 때마다 출력 버퍼를 비우는 작업이 수행되는데, 이 동기화를 막으면 더 빨리 작업이 실행됩니다. 알고리즘 문제를 푸는 데에는 매우 빠르게 활용할 수 있습니다.
#include // 모든 라이브러리 불러오기 형변환 static_cast(값); #정적 자료형 변환. C++에서 기본으로 제공하는 자료형 안에서 형변환을 해준다. dynamic_cast(값); #동적 자료형 변환. 자식 클래스의 포인터/참조에서 부모 클래스의 포인터/참조로 형변환을 해준다. reinterpret_cast(값); #포인터 형태를 바꿔주는데, 어떤 자료형이든 가능하다. 자료형을 막 변환시킬 수 있다. const_cast(값); #const 성향을 없앨 수 있다. PS에서는 static_cast만 기억하면 된다! stoi(string) #문자열을 int로 변환시켜준다. stoi = string to int stof = string to float stol = string to long sto..