본문 바로가기

C++

(226)
[BOJ] 5373번 큐빙 (C++) https://www.acmicpc.net/problem/5373 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net #include using namespace std; char cube[6][3][3]; // 위, 아래, 앞, 뒤, 왼, 오 void make_cube() { for (int k = 0; k < 6; k++) { switch (k) { case 0: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cube[0][i][j] = 'w'; } ..
[BOJ] 1967번 트리의 지름 (C++) https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net #include #include using namespace std; int n; vector tree[10001]; bool visited[10001]; int max_len = 0; int end_node = 0; void dfs(int node, int len) { if (visited[node]) return; visited[node] = true; if (len > m..
[BOJ] 2961번 도영이가 만든 맛있는 음식 (C++) https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net #include #include using namespace std; int n; int ans = 987654321; int ingredients[10][2]; int main() { cin >> n; for(int i = 0; i > ingredients[i][0]; cin >> ingredients[i][1]; } int noc = 1
[C++] 비트 연산 ※ int는 32bit (4byte)이지만, 이 게시물에서 편의상 8bit로 표현하였음 비트 연산자 a = 0b1110 / b = 0b0100 활용 & (AND) a & b = 0b0100 둘 다 1이면 켜짐 어떤 비트가 켜져 있는지 확인 | (OR) a | b = 0b1110 둘 중 1이 하나라도 있으면 켜짐 비트를 켤 때 ^ (XOR) a ^ b = 0b1010 서로 다르면 켜짐 비트를 끄거나 반전시킬 때 ~ (NOT) ~a = 0b0001 비트를 반전시킴 비트를 끌 때 (&와 함께 사용) (오른쪽 Shift) a >> n = a * (2 ^ -n) 비트 연산을 사용할 때 우선순위에 주의가 필요하다. 일반적으로 사칙연산(+, -, *, /)은 비교, 논리 연산자(==, >, && 등)보다 우선순위가 ..
[C++] advance 함수 std::advance(_InIt& _Where, _Diff _Off) 함수는 off만큼 반복자를 이동시킨다. vector v = { 1, 2, 3, 4, 5 }; auto it = v.begin(); advance(it, 1); cout
[BOJ] 16932번 모양 만들기 (C++) https://www.acmicpc.net/problem/16932 16932번: 모양 만들기 N×M인 배열에서 모양을 찾으려고 한다. 배열의 각 칸에는 0과 1 중의 하나가 들어있다. 두 칸이 서로 변을 공유할때, 두 칸을 인접하다고 한다. 1이 들어 있는 인접한 칸끼리 연결했을 때, 각각의 www.acmicpc.net #include #include #include #include #include using namespace std; int n, m; int arr[1000][1000]; bool visited[1000][1000]; int group[1000][1000]; int group_num = 1; vector group_size; int answer = -1; int dx[4] = { -1..
[BOJ] 23352번 방탈출 (C++) https://www.acmicpc.net/problem/23352 23352번: 방탈출 첫줄에 지도의 세로 크기 $N$($1 \le N \le 50$), 가로 크기 $M$($1 \le M \le 50$)이 공백을 두고 주어진다. 둘째 줄부터 $N$줄에 걸쳐 각 방들의 정보 $A$($0 \le A \le 9$)가 공백을 두고 주어진다. www.acmicpc.net #include #include #include using namespace std; int n, m; int maxlength = -1, answer; int map[50][50]; bool visited[50][50]; int dx[4] = { -1, 0, 0, 1 }; int dy[4] = { 0, -1, 1, 0 }; void init(..
[BOJ] 3055번 탈출 (C++) https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net #include #include #include using namespace std; int r, c, bx, by; int answer = 0; char map[50][50]; queue waterq; queue sq; int dx[4] = {-1, 0, 0, 1}; int dy[4] = {0, -1, 1, 0}; void bfs(){ while(!sq.empty()){ //for(int i = 0; i <..