From 531078d7390b9cd946b5f8ef79067c747afbc9a9 Mon Sep 17 00:00:00 2001 From: wangmin <0201.mj.lee@gmail.com> Date: Mon, 17 Jun 2019 22:33:40 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[wangmin]=20=EC=88=98=20=EC=A0=95=EB=A0=AC?= =?UTF-8?q?=ED=95=98=EA=B8=B0=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 190613/wangmin/bj10989.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 190613/wangmin/bj10989.cpp diff --git a/190613/wangmin/bj10989.cpp b/190613/wangmin/bj10989.cpp new file mode 100644 index 0000000..c555b9a --- /dev/null +++ b/190613/wangmin/bj10989.cpp @@ -0,0 +1,32 @@ +#include +#include + +using namespace std; + +int main(){ + cin.tie(NULL); + cout.tie(NULL); + ios_base :: sync_with_stdio(false); + + int N; + cin >> N; + int a; + vector count(10001, 0); + + + for(int i = 0; i < N; i++){ + cin >> a; + count[a]++; + } + + for(int i = 0; i <= 10001; i++){ + for(int j = count[i]; j > 0; j--){ + cout << i << "\n"; + } + } + + + return 0; +} + + From cc2c0df63e9de94d2ce333dac6fa82f168047f1f Mon Sep 17 00:00:00 2001 From: Min-92 <0201.mj.lee@gmail.com> Date: Mon, 24 Jun 2019 16:10:59 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[wangmin]=20=EB=B0=B1=EC=A4=80=201525=20?= =?UTF-8?q?=ED=8D=BC=EC=A6=90=20=EB=AC=B8=EC=A0=9C=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 190621/wangmin/bj1525.cpp | 132 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 190621/wangmin/bj1525.cpp diff --git a/190621/wangmin/bj1525.cpp b/190621/wangmin/bj1525.cpp new file mode 100644 index 0000000..27cc03d --- /dev/null +++ b/190621/wangmin/bj1525.cpp @@ -0,0 +1,132 @@ +#include +#include +#include +#include + +using namespace std; + +int find9(int number){ + int result = 0; + int c; + int i = 0; + while(!result){ + c = number%10; + if(c == 9){ + result = 9-i; + return result; + } + number = number/10; + i++; + } + return result; +} + +vector makeVec(int number){ + vector result(0); + int c; + int n = 100000000; + for(int i = 0; i < 9 ; i++){ + c = number/n%10; + result.push_back(c); + n = n/10; + } + + return result; +} + +int makeNumber(vector vec){ + int result = 0; + int n = 100000000; + for(int i = 0; i < 9; i++){ + result += vec[i]*n; + n = n/10; + } + return result; +} + +vector swapVec(vector vec, int a, int b){ + int c = vec[a-1]; + vec[a-1] = vec[b-1]; + vec[b-1] = c; + + return vec; +} + +int find9(vector vec){ + for(int i = 0 ; i < 9; i++){ + if(vec[i] == 9) { + return i+1; + } + } +} + +int main(){ + int start; + int number = 0; + int n = 100000000; + int c; + + vector vec(0); + map m; + queue>> q ; + vector> map(10,vector(0)); + map[1] = {2,4}; + map[2] = {1,3,5}; + map[3] = {2,6}; + map[4] = {1,5,7}; + map[5] = {2,4,6,8}; + map[6] = {3,5,9}; + map[7] = {4,8}; + map[8] = {5,7,9}; + map[9] = {6,8}; + + + for(int i = 0 ; i < 9; i++){ + cin >> c; + if(c== 0) { + c = 9; + } + vec.push_back(c); + number += c*n; + n = n/10; + } + + m[number] = true; + + + q.push({vec,{0}}); + vector curVec; + int curNum; + int count; + int result = -1; + int cur9; + int next9; + vector nextVec; + int nextNum; + while(!q.empty()){ + curVec = q.front()[0]; + count = q.front()[1][0]; + curNum = makeNumber(curVec); + cur9 = find9(curNum); + q.pop(); + + if(curNum == 123456789){ + result = count; + break; + } + + for(int i = 0; i < map[cur9].size(); i++){ + nextVec = swapVec(curVec,cur9,map[cur9][i]); + nextNum = makeNumber(nextVec); + + if(m[nextNum] != true){ + m[nextNum] = true; + q.push({nextVec,{count+1}}); + } + } + } + + cout << result <