728x90
반응형

C++ 193

백준, BOJ, 21608번, 상어초등학교: C++ [CPP]

이것도 정말 구현문제로써 시키는대로 하면 된다. 다만 범위에 신경쓰도록 사용자 입력만이 범위가 아니란 것을 명심하자 https://www.acmicpc.net/problem/21608 #맞는 풀이 #include #include #include #define X first #define Y second using namespace std; int seat[21][21];//자리 배치 1~N만 쓸 것임 int dx[4] = { 1,-1,0,0 }; //방향 int dy[4] = { 0,0,1,-1 }; //방향 int good[5] = { 0,1,10,100,1000 }; //점수 int N; vector info[401]; //학생 번호와 선호하는 학생을 저장 int main() { cin >> N; i..

백준, BOJ, 20055번, 컨베이어 벨트 위의 로봇 : C++ [CPP]

그냥 시키는 대로 하면 된다. 다만 빼먹으면 안된다. 모든 조건을 빼먹으면 안된다. https://www.acmicpc.net/problem/20055 #맞는 풀이 #include #include #define X first #define Y second using namespace std; using ll = long long; int N, K; // 칸과 제한 deque deq; // 로봇이 있는지 1,0 내구도 int int main() { cin >> N >> K; int num = 2 * N; while (num--) { int x; cin >> x; deq.push_back({0,x }); //로봇이 없는 채로 deq 초기화 } int stage = 0; while (1) { stage++;/..

C++문법/ Static member 정적 멤버[this, 정적 멤버 변수, 정적 멤버 함수]

22.02.02 내용 업데이트 1. this C++ 에서 객체의 고유한 상태를 저장하는 멤버 변수는 객체별로 따로 유지하고 객체의 동작을 정의하는 멤버 함수는 공유한다. -> Static의 특징 객체의 개수와 관계없이 유일하게 존재함. 속성은 객체마다 다르지만 동작은 공통적이어서 각 객체가 따로 가질 필요 없다. -> this는 다시 말해서 해당 멤버 함수를 불러낸 객체라고 할 수 있다. 호출의 주체, 함수를 실행시키는 객체 자체 더 설명해보자 // this #include class Simple { private: int value; public: Simple(int avalue) : value(avalue) {} // 생성자 void OutValue(){ printf("value= %d\n", val..

백준, BOJ, 3190번, 뱀 : C++ [CPP]

문제대로 구현하면 된다. 하지만 어렵지는 않았다. 그냥.. 중간에 if 조건문에서 == 써야할 것을 =으로 써서 30분 날렸다. https://www.acmicpc.net/problem/3190 # 맞는 풀이 #include #include #include #define X first #define Y second using namespace std; //하 상 우 좌 -> 좌측 위 기준 int dx[4] = { 1,-1,0,0 }; int dy[4] = { 0,0,1,-1 }; int N, K, L; int map[100][100]; char direction[10001]; queue q; //꼬리 잘라내기 //1.머리를 hx,hy로 옮김, 게임시간 cnt int Move(int hx, int hy, ..

백준, BOJ, 1707번, 이분 그래프 : C++ [CPP] ★

사실 처음 들었을 때 이분그래프의 정의가 알아듣기 힘들었다. 그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. ??음.. 무슨 말이지?? 즉, 나는 내 집합의 정점과 연결되면 안된다...? 그렇다. 그냥 색을 2가지로 칠할 수 있을 때 인접한 노드가 나와 같은 색을 가지면 안된다는 말과 같다. https://www.acmicpc.net/problem/1707 #맞은 풀이 #include #include #define X first #define Y second #define MAX 20001 using namespace std; int K; // 테스트케이스 수 in..

백준, BOJ, 1753번, 최단경로 : C++ [CPP] ★★★★★

어렵다. 다익스트라를 배웠지만 코딩테스트에서 다시 쓰니까 어렵다 https://www.acmicpc.net/problem/1753 #맞은 풀이 #include #include #include #include #include #define INF INT_MAX using namespace std; int V,E,start; //벡터를 원소로 가지는 배열 -> vector adj[20001]; // 인접행렬 from,(weight,to) //-> adj[1] = {3,5} 의 의미 1번 정점에서 5번으로 가는 가중치 3 //이런 그래프에서 최단거리 => 다익스트라 테이블 int table[20001]; //최소 간선을 위한 minHeap {거리, 정점 번호} -> 일반적으로 first를 기준으로 오름차순으로..

백준, BOJ, 16637번, 괄호추가하기 : C++ [CPP]

어려웠다. 사실 생각은 났는데 작성하기가 힘들다. 아직 구현하는 능력이 부족하다. 100문제밖에 안풀었는데 잘하길 바라는 것은 사치겠지 더군다나 시간제한이 있는 것으로 봐선.. 어려워보였지만 다행히 20개가 넘는 식은 안나와서 풀 수 있었다. https://www.acmicpc.net/problem/16637 #맞는 풀이 #include #include #include #include using namespace std; int N; string s; int ans_M = INT_MIN; //괄호를 씌웠을 때, 안씌웠을 때 모두 조사해본다. //괄호에 의해서만 연산 순서가 정해진다 (모두 연산 순위 같음) //연산 int operation(int a, int b, char c){ int result; /..

C++문법/ 프렌드, Friend 키워드

객체의 신뢰성과 객체지향의 원리에 따라 Encapsulation, Inheritance는 지켜져야 한다. 그러나 너무 엄격하게 상속이나 캡슐화로 비효율적인 경우도 있다. 이럴 때는 진짜 조그마한 예외를 두어 융통성을 늘릴 수 있게 했다. friend 키워드를 쓰면 특정 대상에 대해 모든 멤버를 공개할 수 있다. -> friend를 선언한 대상에게 내 모든 것을 공개한다는 말이다. 프렌드로 지정되면 액세스 지정자에 상관없이 모든 멤버를 읽을 수 있다. 프렌드는 전역 함수, 클래스, 멤버 함수의 세 가지 수준에서 지정한다. 차례대로 살펴보자 1. 외부 전역 함수 외부의 전역 함수를 프렌드로 지정할 때는 클래스 선언문 안에 원형을 밝히되 friend지정자를 붙인다. 예를 들어서 sub함수를 Some 클래스의 ..

백준, BOJ, 1543번, 문서 검색 : C++ [CPP]

어렵지 않았다 다만 첫번째로 못풀었다. 왜 그런지 고찰해보자 https://www.acmicpc.net/problem/1543 #맞은 풀이 #include #include using namespace std; int main() { string s; string target; getline(cin, s); getline(cin, target); int size = target.size(); int cnt = 0; while (1) { int idx = s.find(target); //찾았으면 해당 문자열에서 삭제 if (idx != string::npos) { auto it = s.begin() + idx; //s.erase(it, it+size); -> 삭제 s = s.substr(idx + size)..

백준, BOJ, 2503번, 숫자야구 : C++ [CPP]

이것도 어렵다. 사실 BruteForce문제는 어렵다. 우리 머리 속에서 생략한 계산을 표현할 줄 알아야 하기 때문이다. 우리는 왜 숫자야구를 할 수 있을까? 왜 이것은 후보가 아닐까를..? 표현할 수 있어야 한다. 알아보자 https://www.acmicpc.net/problem/2503 #맞는 풀이 #include #include #include using namespace std; int N; // 주어진 힌트 수 bool num[1001]; int main(){ cin >> N; fill(num, num+1001, true); // 처음엔 숫자모르니까 다 정답의 후보 //하지만 같은 숫자가 있으면 후보가 될 수 없음. for (int i = 100; i n >> st >> b; string s =..

728x90
반응형