ALGORITHM
-
solving USACO dualpal problem in c++ALGORITHM/USACO 2019. 8. 12. 14:43
각 base마다 한번씩 체크해주기만 하자. 체크한 횟수가 2회일경우 그것은 dualpal. #include #include #include #include using namespace std; char toChar(int a) { if (a > 10) { return 'A' + a - 10; } return a + '0'; } string toBase(int target, int base) { string ret; while (target > 0) { int leftover = target % base; target /= base; ret += toChar(leftover); } return ret; } int main() { ofstream fout("dualpal.out"); ifstream fin(..
-
Solving USACO palsquare problem in c++ALGORITHM/USACO 2019. 8. 12. 14:15
firt. You should make function wich is change number according to base second. it just simple by using for statement to check all square numbers #include #include #include #include using namespace std; char toChar(int a) { if (a >= 10) { return 'A' + a - 10; } return a + '0'; } string toBase(int target, int base) { string ret; while (target > 0) { int leftover = target % base; target /= base; re..
-
Solving USACO Name That Number problem in c++ALGORITHM/USACO 2019. 8. 11. 23:07
It is always afraid me to recieve file input but it is nothing difficult #include #include using namespace std; string memo[13]; int main() { string N; ifstream openfile("dict.txt"); ofstream fout("namenum.out"); ifstream fin("namenum.in"); bool check = true; fin >> N; if (openfile.is_open()) { string line; while (getline(openfile, line)) { string answer; for (int i = 0; i < line.size(); i++) { ..
-
Solving the usaco transform problem in c++ALGORITHM/USACO 2019. 8. 11. 22:27
오래걸렸다. 첫째. 입력을 받는 방식을 완전히 마스터 하지 못했다. 둘째. c++에서 array를 다루는 부분이 매우 약했다. char**, char[][],vector, string[], string*를 쓰며 계속계속 배열 범위를 초과하는 문제를 해결해나갔다. #include #include using namespace std; bool check(string* input, string* mirror, int N) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (input[i][j] != mirror[i][j]) return false; } } return true; } string* rot(string* input, int N) {..
-
Milking Cows /c++ALGORITHM/USACO 2019. 8. 11. 17:57
1. map으로 건들여 본다 -> 값이 중복된다 2. multimap으로 건들여 본다. -> value를 정렬해줘야 한다 3. set으로 건들여 본다 -> 값이 중복 4. multiset으로 중복도 가능하고 값도 정렬해준다. #include #include #include using namespace std; int main() { int N; int answer1 = 0; int answer1_x = 1 N; for (int i = 0; i > a>> b; m.insert(pair(a, 1)); // 시작 m.insert(pair(b, 2));//끝 } for (multiset ::iterator iter = m.begin(); iter != m.end()..
-
Broken Necklace /c++ALGORITHM/USACO 2019. 8. 11. 07:24
진짜 쉬운 문제라고 생각하고 간단하게 변수를 짜다보니 의식의 흐름대로 코드가 개판이 났다. 어서빨리 변수명을 짓는 관습부터 챙겨놔야겠다. #include #include using namespace std; int main() { ofstream fout("beads.out"); ifstream fin("beads.in"); int N; string s1, s2; fin >> N; fin >> s1; s2 = s1; s1 += s2; int answer = 0; int lalatest = 0; for (int i = 0; i < N; i++) { int j = i; char start = s1[i]; int latest = 0; int k = 0; bool first = true; int next = 0..
-
Friday the Thirteenth /c++ALGORITHM/USACO 2019. 8. 11. 05:51
#include using namespace std; int main() { ofstream fout("friday.out"); ifstream fin("friday.in"); bool isLeap; int N; fin >> N; int arr[8] = { 0, }; int month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int days = 0; for (int i = 0; i < N; i++) { isLeap = false; int year = 1900 + i; if (year % 4 == 0) { isLeap = true; } if (year % 100 == 0) { isLeap = false; if (year % 400 == 0) { isLeap =..
-
Task 'gift1': Greedy Gift Givers /c++ALGORITHM/USACO 2019. 8. 11. 02:44
problem link #include #include #include using namespace std; int main() { ofstream fout("gift1.out"); ifstream fin("gift1.in"); int NP; map m; string temp[20]; fin >> NP; for (int i = 0; i > temp[i]; m.insert(pair(temp[i], 0)); } for (int i = 0; i > temp; fin >> x >> y; if (y != 0) { string name = m.find(temp)->first; int leftover = ..