목록전체 (216)
피너클의 it공부방
https://www.acmicpc.net/problem/1034 1034번: 램프 첫째 줄에 N과 M이 주어진다. N은 행의 개수이고, M은 열의 개수이다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 램프의 상태가 주어진다. 1이 켜져있는 상태이고, 0이 꺼져 www.acmicpc.net 일종의 그리드 문제 같다. 우리는 열에 있는 램프의 상태를 바꿀수 있고 행에 있는 램프의 상태로 정답을 구한다. 하나의 열의 램프를 바꾸면 모든 행의 램프가 영향을 받는다. 예제 1을 예시로 들어보자. 0 1 1 0 1 0 위의 상태에서 첫번째 열을 바꾸면 1 1 0 0 0 0 위와 같이 된다. 만약 우리가 1행의 램프를 모두 킨 상태로 바꾼다면 아래 있는 행들중 모두 킨 상태의 행은 처음..
https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 단순 구현 문제다. cin >> n >> score >> p; for (int i = 0; i > a; v.push_back(a); } 전부 입력받은 다음 if (n == p && v[v.size() - 1] >= score) cout > score >> p; for (int i = 0; i < n; i++) { int a; ..
https://www.acmicpc.net/problem/9654 9654번: 나부 함대 데이터 나부 행성의 함대의 정보를 아래와 예제 출력과 같은 표로 출력한다. 처음 두 열의 너비는 문자 15개, 세 번째 열은 11개, 마지막 열의 너비는 10개이다. www.acmicpc.net 그냥 출력하면 된다. #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cout
https://www.acmicpc.net/problem/15312 15312번: 이름 궁합 영어 대문자 알파벳 26개의 획수는 순서대로 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 로 정한다. (출제자가 알파벳 대문자를 쓰는 방법이 기준이다) www.acmicpc.net 단순한 구현 문제다. string a, b; vector v; int alpha[] = { 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 }; 입력받을 string a, b와 숫자를 저장할 벡터 v, 각 영어의 획수를 저장한 배열 alpha를 선언한다. ..
https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 단순히 구현하는 문제다. int n, m, b; int map[501][501]; bool visited[501][501]; int block = 0; visited는 방문 완료한 땅, block은 사용할수있는 블럭의 총 수량이다. for (int i = 0; i > map[i][j]; block += map[i..
https://www.acmicpc.net/problem/1106 1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net dp를 이용한 문제다. cin >> c >> n; for (int i = 0; i > a >> b; city.push_back({ a, b }); } c와 n을 입력받은뒤 도시에 홍보했을때 얻는 인워수를 앞에, 홍보할때 드는 비용을 뒤에 둔다. int solve(int client, int now_city) { if (client >= c) re..
https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net dfs를 이용해 푼 문제다. cin >> n >> m; for (int i = 0; i > str[i]; } memset(visited, false, sizeof(visited)); 기본 세팅을 해준다. int w = 0, b = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { ..
https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라. www.acmicpc.net dfs를 이용한 문제다. cin >> n >> m; for (int i = 0; i > a >> b >> c; graph[a].push_back({ b, c }); graph[b].push_back({ a, c }); } 값을 입력받은뒤 그래프를 양방향으로 연결해준다. for (int i = 0; i < m; i++) { memset(visited, false, sizeof(visi..
https://www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 그리드를 이용한 문제다. 두번째 예제를 통해서 확인해보자. 19 20 1 5 12 14 16 16 19 각 크레인은 19와 20이고 화물은 아래와 같다. 화물은 미리 정렬시켜둔다. 현재 첫번째 크레인이 움직일 수 있는 가장 무거운 화물은 7번째 화물이다. 19 20 1 5 12 14 16 16 19 두번째 크레인이 움직일 수 있는 가장 무거울 화물은 6번째 화물이다. 19 20 1..
https://www.acmicpc.net/problem/1083 1083번: 소트 크기가 N인 배열 A가 있다. 배열에 있는 모든 수는 서로 다르다. 이 배열을 소트할 때, 연속된 두 개의 원소만 교환할 수 있다. 그리고, 교환은 많아봐야 S번 할 수 있다. 이때, 소트한 결과가 사전 www.acmicpc.net 그리드를 이용한 문제다. 예제 2를 예로 들어보면 아래 그래프 상태에서 s는 2인 상황에이다. 3 5 1 2 4 총 2번 움직일수 있는 상태에서 움직일수 있는 범위는 파란색 만큼이다. 3 5 1 2 4 3을 선택하면 0번 움직이는거고 5를 선택하면 1번 움직이는거, 1을 선택하면 2번 움직이는 것이다. 가장 최선의 움직이는 방법은 5를 선택해 1번 움직이는 것이다. 5 3 1 2 4 이제 s는..