From 141f151de939a1e107b3e2b7289c1fb436896bb5 Mon Sep 17 00:00:00 2001 From: Choi Changhwan Date: Wed, 11 Dec 2019 15:41:43 +0900 Subject: [PATCH 1/3] yuut, miwansung --- Changhwan/baekjoon17825_yuut.cpp | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Changhwan/baekjoon17825_yuut.cpp diff --git a/Changhwan/baekjoon17825_yuut.cpp b/Changhwan/baekjoon17825_yuut.cpp new file mode 100644 index 0000000..4a60e3b --- /dev/null +++ b/Changhwan/baekjoon17825_yuut.cpp @@ -0,0 +1,59 @@ +#include +using namespace std; + +struct map{ + int index; + struct map* next; + int score; +}; +int maxcost = 0; +int d[10]; +int k[4] = { 0, }; + +struct map m[33]; +int score1[33] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 13, 16, 19, 22, 24, 28, 27, 26, 25, 30, 35 }; +int main(void) { + + for (int i = 0; i < 33; i++) { + m[i].index = i; + m[i].score = score1[i]; + m[i].next = NULL; + } + + return 1; +} + +void travers(int k[], int dice, int i, int cost) { + struct map t; + if (dice <= 9) { + if (k[i] == 5) { + if (d[dice] <= 3) { + k[i] = 21 + d[dice]; + cost += m[k[i]].score; + } + else { + k[i] = 30 + d[dice] - 4; + cost += m[k[i]].score; + } + } + else if (k[i] == 10) { + if (d[dice] <= 2) { + k[i] = 24 + d[dice]; + cost += m[k[i]].score; + } + else { + k[i] = 30 + d[dice] - 3; + cost += m[k[i]].score; + } + + } + else if (k[i] == 15) { + + } + else { + + } + } + +} + From 0013ae1f3d63fe583555e594ec798547e51c247b Mon Sep 17 00:00:00 2001 From: Choi Changhwan Date: Mon, 13 Jan 2020 01:50:10 +0900 Subject: [PATCH 2/3] baekjoon 17825_not finished --- Changhwan/baekjoon17825_yuut.cpp | 90 ++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 27 deletions(-) diff --git a/Changhwan/baekjoon17825_yuut.cpp b/Changhwan/baekjoon17825_yuut.cpp index 4a60e3b..6c0c10b 100644 --- a/Changhwan/baekjoon17825_yuut.cpp +++ b/Changhwan/baekjoon17825_yuut.cpp @@ -1,59 +1,95 @@ #include +#include using namespace std; -struct map{ +struct map { int index; struct map* next; - int score; }; int maxcost = 0; int d[10]; -int k[4] = { 0, }; - +void travers(int k1, int k2, int k3, int k4, int dice, int i, int cost); struct map m[33]; int score1[33] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 13, 16, 19, 22, 24, 28, 27, 26, 25, 30, 35 }; int main(void) { - + for (int i = 0; i < 10; i++) { + cin >> d[i]; + } + for (int i = 0; i < 33; i++) { m[i].index = i; - m[i].score = score1[i]; m[i].next = NULL; } + m[5].next = &m[22]; + m[24].next = &m[30]; + m[32].next = &m[20]; + m[10].next = &m[25]; + m[26].next = &m[30]; + m[15].next = &m[27]; + + travers(0, 0, 0, 0, 0, 0, 0); + travers(0, 0, 0, 0, 0, 1, 0); + travers(0, 0, 0, 0, 0, 2, 0); + travers(0, 0, 0, 0, 0, 3, 0); + + cout << maxcost; return 1; } -void travers(int k[], int dice, int i, int cost) { - struct map t; - if (dice <= 9) { - if (k[i] == 5) { - if (d[dice] <= 3) { - k[i] = 21 + d[dice]; - cost += m[k[i]].score; - } - else { - k[i] = 30 + d[dice] - 4; - cost += m[k[i]].score; - } +void travers(int k1, int k2, int k3, int k4, int dice, int i, int cost) { + int k[4] = { k1, k2, k3, k4 }; + int loc = k[i]; + int done = 0; + struct map* m_temp; + + int cnt = d[dice]; + if (cnt <= 20 && m[loc].next == NULL) { + loc += cnt; + if (loc > 20) { + loc = 21; } - else if (k[i] == 10) { - if (d[dice] <= 2) { - k[i] = 24 + d[dice]; - cost += m[k[i]].score; + } + else if (m[loc].next != NULL || cnt >= 22) { + for (cnt; cnt > 0; cnt--) { + if (m[loc].next != NULL) { + m_temp = m[loc].next; + loc = m_temp->index; } else { - k[i] = 30 + d[dice] - 3; - cost += m[k[i]].score; + loc++; } + if (loc == 20 && cnt > 1) { + loc = 21; + break; + } + } + } + dice++; + if (dice < 10) { + k[i] = loc; + if (k[i] != 21) { + cost += score1[loc]; } - else if (k[i] == 15) { + for (int i = 0; i < 4; i++) { + if (k[i] != 21) { + travers(k[0], k[1], k[2], k[3], dice, i, cost); + } } - else { + if (k[0] == 21 && k[1] == 21 && k[2] == 21 && k[3] == 21) { + if (cost >= maxcost) { + maxcost = cost; + } + } + } + else { + if (cost >= maxcost) { + maxcost = cost; } } - } + From 55f1a036994ebc53726db33024aeecedd7e657fc Mon Sep 17 00:00:00 2001 From: ccwhan6 <40515346+ccwhan6@users.noreply.github.com> Date: Mon, 3 Feb 2020 19:46:33 +0900 Subject: [PATCH 3/3] Create 16236.cpp --- Changhwan/16236.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Changhwan/16236.cpp diff --git a/Changhwan/16236.cpp b/Changhwan/16236.cpp new file mode 100644 index 0000000..eaf1200 --- /dev/null +++ b/Changhwan/16236.cpp @@ -0,0 +1,82 @@ +#include +#include +#include +using namespace std; + +typedef struct _feed { + int x; + int y; + int mv_cnt; +}feed; + +int search_feed(); + +int N = 0; +char map_c[20][20]; +int map[20][20] = {10, }; +int map_t[20][20] = {10, }; +int baby_shark_sz = 2; +int baby_shark_lc[2] = {0,}; +int next_tar[2] = {0, }; + +int main(void){ + + int cnt = 0; + int move = 0; + + cin >> N; + + for(int i = 0; i < N; i++){ + cin >> map_c[i]; + } + + for(int i = 0; i< N; i++){ + for(int j = 0; j 0){ + + } + + return 0; +} + +int search_feed(){ + int cnt = 0; + int shortest = 40; + for(int i = 0 ; i < N; i++){ + for(int j = 0; j < N; j++){ + if(map[i][j] < baby_shark_sz && map[i][j] != 0){ + if (shortest > (abs(i-baby_shark_lc[0]) + abs(j-baby_shark_lc[1]))){ + next_tar[0] = i; + next_tar[1] = j; + shortest = (abs(i-baby_shark_lc[0]) + abs(j-baby_shark_lc[1])); + } + } + } + } + for(int i = 0 ; i < N; i++){ + for(int j = 0; j < N; j++){ + if(map[i][j] < baby_shark_sz && map[i][j] != 0){ + if (shortest == (abs(i-baby_shark_lc[0]) + abs(j-baby_shark_lc[1]))){ + cnt++; + } + } + } + } + + return cnt; +} + +int move_shark(int **map){ + queue feed_q; + +}