본문 바로가기

728x90
반응형

전체 글

(151)
[C++] 7682 : 틱택토 https://www.acmicpc.net/problem/7682 7682번: 틱택토 틱택토 게임은 두 명의 사람이 번갈아가며 말을 놓는 게임이다. 게임판은 3×3 격자판이며, 처음에는 비어 있다. 두 사람은 각각 X 또는 O 말을 번갈아가며 놓는데, 반드시 첫 번째 사람이 X를 놓고 www.acmicpc.net #include using namespace std; char MAP[3][3]; // c가 3줄로 있으면 true 반환 bool condition(char c) { // 가로 확인 for (int i = 0; i < 3; i++) { bool valid = true; for (int j = 0; j < 3; j++) { if (MAP[i][j] != c) { valid = false; } } ..
[C++] 2138 : 전구와 스위치 https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net #include using namespace std; int n; bool src[112345]; bool dst[112345]; int ans; void switching(bool t[], int i) { if (i == 0) { t[i + 1] = !t[i + 1]; } else if (i == n - 1) { t[i - 1] = !t[i - 1]; } else {..
[C++] 4659 : 비밀번호 발음하기 https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net #include using namespace std; string s; bool isVowel(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } int main(void) { while (true) { cin >> s; if (s == "end") { return 0; } bool isV = false; ..
[C++] 2467 : 용액 https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net #include using namespace std; int n; vector v; pair ans; long long min_s; int main(void) { cin >> n; long long input; for (int i = 0; i > input; v.push_back(input); } ans = {v[0], v[n - 1]}; min_s = abs(..
[C++] 5972 : 택배 배송 https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net #include using namespace std; int n, m; vector v[51234]; // ex. v[4][3]값이 {2,3}이면, 4번 길은 2번길과 소 3마리로 이어져 있다는 뜻. int d[51234]; void fun(int vertex) { priority_queue pq; // {정점,거리} pq.push({vertex, 0}); d[vertex] = 0; while (!pq.e..
[C++] 14719 : 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net #include using namespace std; int h, w; vector v; int ans; int main(void) { cin >> h >> w; int input; for (int i = 0; i > input; v.push_back(input); } int left; int right; int height; for (int i =..
[C++] 2493 : 탑 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net #include using namespace std; int n; stack s; map ans; int main() { cin >> n; int height; s.push({112345678, 0}); for (int i = 0; i > height; while (!s.empty() && s.top().first 1) { int towerIdx = s.top()...
[C++] 16234 : 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net #include using namespace std; typedef pair pi; int n, l, r; int a[55][55]; int isTeam[55][55]; vector team; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; int ans; void findGroup(int ax, int ay) { if (isTeam[ax..

728x90
반응형