목록전체 글 (49)
세상에 나쁜 코드는 없다
문제 해결 구현: #include using namespace std; // arr[a][b]의 값은 a를 호출할때 b를 호출하게 되는 횟수 int arr[40][2]; void calculate() { arr[0][0] =1; arr[1][1] = 1; for(int i=2; i> t; for(int i=0; i> n; cout
정답 비율이 48%나 육박하는 dp 문제였다 풀이: #include using namespace std; const int R=0, G=1, B=2; int expense[1000][3]; int houseNum; //ans[n][color]은 n번째 집이 color인 경우에 드는 최소 비용 int ans[1000][3]; void init() { cin >> houseNum; for(int i=0; i expense[i][j]; } int findSmall(int a, int b) { if(a>=b) return b; else return a; } int getMinimumExpense() { ans[0][R]= expense[0][R]; ans[0][G]= expense[0][G]; ans[0][B]..
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net #include using namespace std; int board[128][128]; int boardSize; int blue=0, white=0; bool isSameColor(int x, int y, int size) { int color = board[x][y]; for(int i=0; i boardSize; for(int i=0; i< boardSize; ..
https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net #include #include #include using namespace std; int graph[20][20]; int num; int minValue=99999; int steam[19]; int steam_size; int lteam[19]; int lteam_size; vector vec; void init() { cin >> num; fo..
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net #include using namespace std; int arr[50][3]; int num; void init() { cin >> num; for(int i=0; i> arr[i][0] >> arr[i][1]; } } //덩치 순위를 계산해서 arr[][2]에 저장 void computeRank() { for(int i=0; i
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net #include using namespace std; char board[50][50]; int row, col; void init() { cin >> row >> col; for(int i=0; i board[i][j]; } } } // board[r][c]에서 시작하는 8*8 체스판에서 칠해야하는 가장 적은 값 반환 int getMinAtBoard(int r, int c) { int c..
#include #include using namespace std; int numberArr[9]; int length; bool isPalindrome() { int half=length/2; for(int i=0; i0; i--) { if(numberArr[i] == 10) { numberArr[i-1]++; numberArr[i] = 0; } } } int main() { int count; string input; while(1) { count=0; cin >> input; length = input.length(); if(input == "0") break; for(int i=0; i< length; i++) { numberArr[i] = input.at(i) -'0'; } while(!isP..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다. www.acmicpc.net #include #include using namespace std; char **board; int boardSize; void init() { string str; cin >> boardSize; board = new char*[boardSize]; for(int i=0; i str; for(int j=0; j
#include using namespace std; int board[21][21]; int dx[8] = {-1,0,1,-1,1,-1,0,1}; int dy[8] = {1,1,1,0,0,-1,-1,-1}; int result[2]; //x,y 좌표를 받으면 해당 좌표 위치가 오목을 만드는지 체크함 //left 남은 좌표 수 //direction 오목이 진행되는 방향 //color 1:흰돌 2:검은돌 //check(5 ,~~) 로 검사할시 오목이면 true, 아니면 false 반환 bool check(int left, int direction, int color,int x, int y) { //시작점에서 출발방향 앞에 같은 숫자가 있는 경우 (6목의 경우를 제거) if(left == 5 && board..