From ff282ad08724e12ac5803e822237890bef8d95a2 Mon Sep 17 00:00:00 2001 From: yj_ai Date: Wed, 4 Jan 2023 18:47:23 +0900 Subject: [PATCH 01/25] week1.yj --- week1/youngjun/1000.c | 8 ++++++++ week1/youngjun/1001.c | 8 ++++++++ week1/youngjun/1008.c | 8 ++++++++ week1/youngjun/10172.c | 10 ++++++++++ week1/youngjun/10430.c | 12 ++++++++++++ week1/youngjun/10869.c | 12 ++++++++++++ week1/youngjun/10926.c | 9 +++++++++ week1/youngjun/10998.c | 8 ++++++++ week1/youngjun/18108.c | 8 ++++++++ week1/youngjun/25083.c | 11 +++++++++++ week1/youngjun/2557.c | 5 +++++ week1/youngjun/2558.c | 15 +++++++++++++++ week1/youngjun/3003.c | 14 ++++++++++++++ 13 files changed, 128 insertions(+) create mode 100644 week1/youngjun/1000.c create mode 100644 week1/youngjun/1001.c create mode 100644 week1/youngjun/1008.c create mode 100644 week1/youngjun/10172.c create mode 100644 week1/youngjun/10430.c create mode 100644 week1/youngjun/10869.c create mode 100644 week1/youngjun/10926.c create mode 100644 week1/youngjun/10998.c create mode 100644 week1/youngjun/18108.c create mode 100644 week1/youngjun/25083.c create mode 100644 week1/youngjun/2557.c create mode 100644 week1/youngjun/2558.c create mode 100644 week1/youngjun/3003.c diff --git a/week1/youngjun/1000.c b/week1/youngjun/1000.c new file mode 100644 index 0000000..6070bd4 --- /dev/null +++ b/week1/youngjun/1000.c @@ -0,0 +1,8 @@ +#include +#include + +int main(){ + int A,B; + scanf("%d %d",&A,&B); + printf("%d",A+B); +} \ No newline at end of file diff --git a/week1/youngjun/1001.c b/week1/youngjun/1001.c new file mode 100644 index 0000000..4bb8aa1 --- /dev/null +++ b/week1/youngjun/1001.c @@ -0,0 +1,8 @@ +#include +#include + +int main(){ + int A,B; + scanf("%d %d",&A,&B); + printf("%d",A-B); +} \ No newline at end of file diff --git a/week1/youngjun/1008.c b/week1/youngjun/1008.c new file mode 100644 index 0000000..7a0c4a2 --- /dev/null +++ b/week1/youngjun/1008.c @@ -0,0 +1,8 @@ +#include +#include + +int main(){ + int A,B; + scanf("%d %d",&A,&B); + printf("%.9lf",(double)A/(double)B); +} \ No newline at end of file diff --git a/week1/youngjun/10172.c b/week1/youngjun/10172.c new file mode 100644 index 0000000..3f8f56f --- /dev/null +++ b/week1/youngjun/10172.c @@ -0,0 +1,10 @@ +#include +#include + +int main(){ + printf("|\\_/|\n"); + printf("|q p| /}\n"); + printf("( 0 )\"\"\"\\ \n"); + printf("|\"^\"` |\n"); + printf("||_/=\\\\__|\n"); +} \ No newline at end of file diff --git a/week1/youngjun/10430.c b/week1/youngjun/10430.c new file mode 100644 index 0000000..62959a9 --- /dev/null +++ b/week1/youngjun/10430.c @@ -0,0 +1,12 @@ +#include + +int main(){ + int A,B,C; + scanf("%d %d %d",&A,&B,&C); + + printf("%d\n",(A+B)%C); + printf("%d\n",((A%C) + (B%C))%C); + printf("%d\n",(A*B)%C); + printf("%d\n",((A%C) * (B%C))%C); + +} \ No newline at end of file diff --git a/week1/youngjun/10869.c b/week1/youngjun/10869.c new file mode 100644 index 0000000..1b6e9a6 --- /dev/null +++ b/week1/youngjun/10869.c @@ -0,0 +1,12 @@ +#include +#include + +int main(){ + int A,B; + scanf("%d %d",&A,&B); + printf("%d\n",A+B); + printf("%d\n",A-B); + printf("%d\n",A*B); + printf("%d\n",A/B); + printf("%d\n",A%B); +} \ No newline at end of file diff --git a/week1/youngjun/10926.c b/week1/youngjun/10926.c new file mode 100644 index 0000000..ac6392a --- /dev/null +++ b/week1/youngjun/10926.c @@ -0,0 +1,9 @@ +#include +#include + +int main(){ + char A[50]; + scanf("%s",A); + printf("%s?",A); + printf("?!"); +} \ No newline at end of file diff --git a/week1/youngjun/10998.c b/week1/youngjun/10998.c new file mode 100644 index 0000000..1ee44ac --- /dev/null +++ b/week1/youngjun/10998.c @@ -0,0 +1,8 @@ +#include +#include + +int main(){ + int A,B; + scanf("%d %d",&A,&B); + printf("%d",A*B); +} \ No newline at end of file diff --git a/week1/youngjun/18108.c b/week1/youngjun/18108.c new file mode 100644 index 0000000..1efca54 --- /dev/null +++ b/week1/youngjun/18108.c @@ -0,0 +1,8 @@ +#include +#include + +int main(){ + int years; + scanf("%d",&years); + printf("%d",years - 543); +} \ No newline at end of file diff --git a/week1/youngjun/25083.c b/week1/youngjun/25083.c new file mode 100644 index 0000000..f33d213 --- /dev/null +++ b/week1/youngjun/25083.c @@ -0,0 +1,11 @@ +#include +#include + +int main(){ + printf(" ,r'\"7 \n"); + printf("r`-_ ,' ,/ \n"); + printf(" \\. \". L_r' \n"); + printf(" `~\\/ \n"); + printf(" | \n"); + printf(" | \n"); +} \ No newline at end of file diff --git a/week1/youngjun/2557.c b/week1/youngjun/2557.c new file mode 100644 index 0000000..1ad36b8 --- /dev/null +++ b/week1/youngjun/2557.c @@ -0,0 +1,5 @@ +#include + +int main(){ + printf("Hello World!"); +} \ No newline at end of file diff --git a/week1/youngjun/2558.c b/week1/youngjun/2558.c new file mode 100644 index 0000000..af2038f --- /dev/null +++ b/week1/youngjun/2558.c @@ -0,0 +1,15 @@ +#include +#include +#include + +int main(){ + int A; + char B[4]; // 널문자 조심 + scanf("%d %s",&A,B); + + printf("%d\n",A * (B[2] - '0')); + printf("%d\n",A * (B[1] - '0')); + printf("%d\n",A * (B[0] - '0')); + printf("%d\n",A * atoi(B)); + +} \ No newline at end of file diff --git a/week1/youngjun/3003.c b/week1/youngjun/3003.c new file mode 100644 index 0000000..1b45bd3 --- /dev/null +++ b/week1/youngjun/3003.c @@ -0,0 +1,14 @@ +#include +#include + +int main(){ + int tot[6] = {1,1,2,2,2,8}; + int sev[6]; + for (int i = 0; i < 6; i++) + { + scanf("%d",&sev[i]); + printf("%d",tot[i] - sev[i]); + printf(" "); + } + +} \ No newline at end of file From 430308f1e67e84cc16f46a8adc98702f359ca0f8 Mon Sep 17 00:00:00 2001 From: yj-ai <73847705+yj-ai@users.noreply.github.com> Date: Wed, 4 Jan 2023 22:06:08 +0900 Subject: [PATCH 02/25] Revert "week1.yj" --- week1/youngjun/1000.c | 8 -------- week1/youngjun/1001.c | 8 -------- week1/youngjun/1008.c | 8 -------- week1/youngjun/10172.c | 10 ---------- week1/youngjun/10430.c | 12 ------------ week1/youngjun/10869.c | 12 ------------ week1/youngjun/10926.c | 9 --------- week1/youngjun/10998.c | 8 -------- week1/youngjun/18108.c | 8 -------- week1/youngjun/25083.c | 11 ----------- week1/youngjun/2557.c | 5 ----- week1/youngjun/2558.c | 15 --------------- week1/youngjun/3003.c | 14 -------------- 13 files changed, 128 deletions(-) delete mode 100644 week1/youngjun/1000.c delete mode 100644 week1/youngjun/1001.c delete mode 100644 week1/youngjun/1008.c delete mode 100644 week1/youngjun/10172.c delete mode 100644 week1/youngjun/10430.c delete mode 100644 week1/youngjun/10869.c delete mode 100644 week1/youngjun/10926.c delete mode 100644 week1/youngjun/10998.c delete mode 100644 week1/youngjun/18108.c delete mode 100644 week1/youngjun/25083.c delete mode 100644 week1/youngjun/2557.c delete mode 100644 week1/youngjun/2558.c delete mode 100644 week1/youngjun/3003.c diff --git a/week1/youngjun/1000.c b/week1/youngjun/1000.c deleted file mode 100644 index 6070bd4..0000000 --- a/week1/youngjun/1000.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -int main(){ - int A,B; - scanf("%d %d",&A,&B); - printf("%d",A+B); -} \ No newline at end of file diff --git a/week1/youngjun/1001.c b/week1/youngjun/1001.c deleted file mode 100644 index 4bb8aa1..0000000 --- a/week1/youngjun/1001.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -int main(){ - int A,B; - scanf("%d %d",&A,&B); - printf("%d",A-B); -} \ No newline at end of file diff --git a/week1/youngjun/1008.c b/week1/youngjun/1008.c deleted file mode 100644 index 7a0c4a2..0000000 --- a/week1/youngjun/1008.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -int main(){ - int A,B; - scanf("%d %d",&A,&B); - printf("%.9lf",(double)A/(double)B); -} \ No newline at end of file diff --git a/week1/youngjun/10172.c b/week1/youngjun/10172.c deleted file mode 100644 index 3f8f56f..0000000 --- a/week1/youngjun/10172.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -int main(){ - printf("|\\_/|\n"); - printf("|q p| /}\n"); - printf("( 0 )\"\"\"\\ \n"); - printf("|\"^\"` |\n"); - printf("||_/=\\\\__|\n"); -} \ No newline at end of file diff --git a/week1/youngjun/10430.c b/week1/youngjun/10430.c deleted file mode 100644 index 62959a9..0000000 --- a/week1/youngjun/10430.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -int main(){ - int A,B,C; - scanf("%d %d %d",&A,&B,&C); - - printf("%d\n",(A+B)%C); - printf("%d\n",((A%C) + (B%C))%C); - printf("%d\n",(A*B)%C); - printf("%d\n",((A%C) * (B%C))%C); - -} \ No newline at end of file diff --git a/week1/youngjun/10869.c b/week1/youngjun/10869.c deleted file mode 100644 index 1b6e9a6..0000000 --- a/week1/youngjun/10869.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -int main(){ - int A,B; - scanf("%d %d",&A,&B); - printf("%d\n",A+B); - printf("%d\n",A-B); - printf("%d\n",A*B); - printf("%d\n",A/B); - printf("%d\n",A%B); -} \ No newline at end of file diff --git a/week1/youngjun/10926.c b/week1/youngjun/10926.c deleted file mode 100644 index ac6392a..0000000 --- a/week1/youngjun/10926.c +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -int main(){ - char A[50]; - scanf("%s",A); - printf("%s?",A); - printf("?!"); -} \ No newline at end of file diff --git a/week1/youngjun/10998.c b/week1/youngjun/10998.c deleted file mode 100644 index 1ee44ac..0000000 --- a/week1/youngjun/10998.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -int main(){ - int A,B; - scanf("%d %d",&A,&B); - printf("%d",A*B); -} \ No newline at end of file diff --git a/week1/youngjun/18108.c b/week1/youngjun/18108.c deleted file mode 100644 index 1efca54..0000000 --- a/week1/youngjun/18108.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -int main(){ - int years; - scanf("%d",&years); - printf("%d",years - 543); -} \ No newline at end of file diff --git a/week1/youngjun/25083.c b/week1/youngjun/25083.c deleted file mode 100644 index f33d213..0000000 --- a/week1/youngjun/25083.c +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -int main(){ - printf(" ,r'\"7 \n"); - printf("r`-_ ,' ,/ \n"); - printf(" \\. \". L_r' \n"); - printf(" `~\\/ \n"); - printf(" | \n"); - printf(" | \n"); -} \ No newline at end of file diff --git a/week1/youngjun/2557.c b/week1/youngjun/2557.c deleted file mode 100644 index 1ad36b8..0000000 --- a/week1/youngjun/2557.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int main(){ - printf("Hello World!"); -} \ No newline at end of file diff --git a/week1/youngjun/2558.c b/week1/youngjun/2558.c deleted file mode 100644 index af2038f..0000000 --- a/week1/youngjun/2558.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -int main(){ - int A; - char B[4]; // 널문자 조심 - scanf("%d %s",&A,B); - - printf("%d\n",A * (B[2] - '0')); - printf("%d\n",A * (B[1] - '0')); - printf("%d\n",A * (B[0] - '0')); - printf("%d\n",A * atoi(B)); - -} \ No newline at end of file diff --git a/week1/youngjun/3003.c b/week1/youngjun/3003.c deleted file mode 100644 index 1b45bd3..0000000 --- a/week1/youngjun/3003.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include - -int main(){ - int tot[6] = {1,1,2,2,2,8}; - int sev[6]; - for (int i = 0; i < 6; i++) - { - scanf("%d",&sev[i]); - printf("%d",tot[i] - sev[i]); - printf(" "); - } - -} \ No newline at end of file From 4be83cec4d93fcadd5b170e5e591f700aff16ba3 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 15:10:32 +0900 Subject: [PATCH 03/25] =?UTF-8?q?feat=20:=201001=EB=B2=88=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_1001.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 week1/sumin/Backjoon_1001.java diff --git a/week1/sumin/Backjoon_1001.java b/week1/sumin/Backjoon_1001.java new file mode 100644 index 0000000..5cb76cc --- /dev/null +++ b/week1/sumin/Backjoon_1001.java @@ -0,0 +1,5 @@ +class BackJoon_1001{ + public static void main(String[] args) { + + } +} \ No newline at end of file From 4fd5a99ab686df28321fd5d8fe029778ae774a7e Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 15:12:12 +0900 Subject: [PATCH 04/25] =?UTF-8?q?feat=20:=201008=EB=B2=88=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_1008.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_1008.java diff --git a/week1/sumin/Backjoon_1008.java b/week1/sumin/Backjoon_1008.java new file mode 100644 index 0000000..e69de29 From 1201bd8c067c09ddbf73da8c20688e10dde87ea3 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 15:14:03 +0900 Subject: [PATCH 05/25] =?UTF-8?q?feat=20:=2010171=EB=B2=88=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_10171.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_10171.java diff --git a/week1/sumin/Backjoon_10171.java b/week1/sumin/Backjoon_10171.java new file mode 100644 index 0000000..e69de29 From 71704fa97e6d610e98bbe87cea2a16483c5b089b Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 15:15:19 +0900 Subject: [PATCH 06/25] =?UTF-8?q?feat=20:=2010172=EB=B2=88=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_10172.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_10172.java diff --git a/week1/sumin/Backjoon_10172.java b/week1/sumin/Backjoon_10172.java new file mode 100644 index 0000000..e69de29 From bc2e7e99fdd551074cfc5bec144e07c28a86ae31 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 16:15:14 +0900 Subject: [PATCH 07/25] =?UTF-8?q?feat=20:=201000=EB=B2=88=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_1000.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_1000.java diff --git a/week1/sumin/Backjoon_1000.java b/week1/sumin/Backjoon_1000.java new file mode 100644 index 0000000..e69de29 From 6d5f72e238835906f62e1ac71697c04ef576bde5 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 20:21:42 +0900 Subject: [PATCH 08/25] =?UTF-8?q?feat=20:=2010430=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_10430.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_10430.java diff --git a/week1/sumin/Backjoon_10430.java b/week1/sumin/Backjoon_10430.java new file mode 100644 index 0000000..e69de29 From 81fb8ed9675229a87fe23443711c3e278de814e8 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 20:24:32 +0900 Subject: [PATCH 09/25] =?UTF-8?q?feat=20:=202557=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_2557.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_2557.java diff --git a/week1/sumin/Backjoon_2557.java b/week1/sumin/Backjoon_2557.java new file mode 100644 index 0000000..e69de29 From dddbbfdbe17d1bf026d69adf18f595c05fbf2d3d Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 20:39:07 +0900 Subject: [PATCH 10/25] =?UTF-8?q?feat=20:=203033=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_3033.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_3033.java diff --git a/week1/sumin/Backjoon_3033.java b/week1/sumin/Backjoon_3033.java new file mode 100644 index 0000000..e69de29 From 19c8d58f537b8f6b56330bd49cd91140cc035459 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 20:43:31 +0900 Subject: [PATCH 11/25] =?UTF-8?q?docs=20:=20=EB=B2=84=ED=8D=BC=EB=A5=BC=20?= =?UTF-8?q?=EC=9D=B4=EC=9A=A9=ED=95=9C=20=EC=9E=85=EC=B6=9C=EB=A0=A5=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 \354\236\205\354\266\234\353\240\245.md" | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 "week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" diff --git "a/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" new file mode 100644 index 0000000..caf3781 --- /dev/null +++ "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" @@ -0,0 +1,96 @@ +# BufferedReader / BufferedWriter + +### 버퍼 + +--- + +- 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역 +- 입출력 속도 향상을 위해 버퍼 사용 + +**버퍼 플러쉬(buffer flush)** + +버퍼에 남아있는 데이터를 출력시킴(버퍼를 비우는 동작) + +![스크린샷 2023-01-06 오후 3.47.37.png](BufferedReader%20BufferedWriter%20ed8ee595ccba4752965ae50f4b2b9260/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-01-06_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE_3.47.37.png) + +버퍼를 거쳐가는 데 왜 빠르냐고? + +하드디스크나 외부 장치와의 데이터 입출력은 시간이 오래 걸린다. + +따라서 중간에 메모리 버퍼를 두고 한꺼번에 묶어서 이동시키는 것이 효율적이고 빠르다. + +### BufferdReader, BufferedWriter + +--- + +- 버퍼를 이용해 읽고 쓰는 함수 +- 버퍼를 이용하기 때문에 입출력의 효율이 좋아진다. + +BufferedReader : 버퍼를 이용한 입력 (→ Scanner와 유사) + +BufferedWriter : 버퍼를 이용한 출력 (→ System.out.println과 유사) + +위 두개를 사용하기 위해서 다음의 추가 import가 필요하다. + +```java +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +``` + +### Scanner과 비교 + +--- + +BufferedReader은 Enter만 경계로 인식하고 받은 데이터를 String으로 고정한다. + +### BufferdReader사용법 + +--- + +```java +BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언 +String s = bf.readLine(); //String +int i = Integer.parseInt(bf.readLine()); //Int +``` + +1. 입력은 readLine()을 사용하여 한 줄을 입력받는다. + + 하지만, 무조건 return 값이 String이기 떄문에 + + 다른 타입으로 입력을 받으려면 변환을 해주어야 한다. + +2. throws IOException을 이용해서 예외처리를 해주어야 한다. + +### 타입 변환하기 + +--- + +```java +StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음 +int a = Integer.parseInt(st.nextToken()); //첫번째 호출 +int b = Integer.parseInt(st.nextToken()); //두번째 호출 + +String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음 +``` + +BufferedReader을 이용하면 Line 단위로만 나눠지기에 공백 단위로 구분하려면 따로 작업을 해주어야 한다. + +1. StringTokenizer에 nextToken()을 쓰면 입력받은 값을 공백단위로 구분할 수 있다. +2. String.split()함수를 이요하여 배열에 공백단위로 끊어서 데이터를 넣고 사용한다. + +### BufferedWriter사용법 + +--- + +```java +BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //할당된 버퍼에 값 넣어주기 +String s = "abcdefg"; //출력할 문자열 +bw.write(s+"\n"); //버퍼에 있는 값 전부 출력 +bw.flush(); //남아있는 데이터를 모두 출력시킴 +bw.close(); //스트림을 닫음 +``` + +1. flush(), close()를 호출해야한다. +2. bw.write()에는 개행기능이 없기에 자동으로 개행을 해주어야 한다. \ No newline at end of file From d5f3e594e7ccbb412d5264aefaad76340244854e Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 20:56:14 +0900 Subject: [PATCH 12/25] =?UTF-8?q?feat=20:=2010869=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_10869.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_10869.java diff --git a/week1/sumin/Backjoon_10869.java b/week1/sumin/Backjoon_10869.java new file mode 100644 index 0000000..e69de29 From 49890fca3caf2dce86878a2f0f8c0df3bb981d85 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Fri, 6 Jan 2023 21:00:53 +0900 Subject: [PATCH 13/25] =?UTF-8?q?feat=20:=2010926=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_10926.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 week1/sumin/Backjoon_10926.java diff --git a/week1/sumin/Backjoon_10926.java b/week1/sumin/Backjoon_10926.java new file mode 100644 index 0000000..e69de29 From 7bde0db513f70a63c44c65ed3f602f13a4b07477 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sat, 7 Jan 2023 00:19:30 +0900 Subject: [PATCH 14/25] =?UTF-8?q?chore=20:=201=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=ED=92=80=EC=9D=B4=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=B4=20=EC=9E=AC=EC=97=85=EB=A1=9C?= =?UTF-8?q?=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week1/sumin/Backjoon_1000.java | 19 ++++++++++++ week1/sumin/Backjoon_1001.java | 15 +++++++-- week1/sumin/Backjoon_1008.java | 16 ++++++++++ week1/sumin/Backjoon_10171.java | 23 ++++++++++++++ week1/sumin/Backjoon_10172.java | 20 ++++++++++++ week1/sumin/Backjoon_10430.java | 26 ++++++++++++++++ week1/sumin/Backjoon_10869.java | 28 +++++++++++++++++ week1/sumin/Backjoon_10926.java | 21 +++++++++++++ week1/sumin/Backjoon_2557.java | 13 ++++++++ week1/sumin/Backjoon_3033.java | 31 +++++++++++++++++++ ...4 \354\236\205\354\266\234\353\240\245.md" | 13 +++++++- 11 files changed, 222 insertions(+), 3 deletions(-) diff --git a/week1/sumin/Backjoon_1000.java b/week1/sumin/Backjoon_1000.java index e69de29..2351e08 100644 --- a/week1/sumin/Backjoon_1000.java +++ b/week1/sumin/Backjoon_1000.java @@ -0,0 +1,19 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Backjoon_1000 { + public static void main(String[] args) throws IOException { + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + String str = br.readLine(); + StringTokenizer st = new StringTokenizer(str," "); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + + System.out.println(a+b); + } + +} diff --git a/week1/sumin/Backjoon_1001.java b/week1/sumin/Backjoon_1001.java index 5cb76cc..2270926 100644 --- a/week1/sumin/Backjoon_1001.java +++ b/week1/sumin/Backjoon_1001.java @@ -1,5 +1,16 @@ -class BackJoon_1001{ - public static void main(String[] args) { +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; +class BackJoon_1001{ + public static void main(String[]args) throws IOException{ + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + String str=br.readLine(); + StringTokenizer st=new StringTokenizer(str," "); + int A=Integer.parseInt(st.nextToken()); + int B=Integer.parseInt(st.nextToken()); + + System.out.println(A-B); } } \ No newline at end of file diff --git a/week1/sumin/Backjoon_1008.java b/week1/sumin/Backjoon_1008.java index e69de29..51b1d2f 100644 --- a/week1/sumin/Backjoon_1008.java +++ b/week1/sumin/Backjoon_1008.java @@ -0,0 +1,16 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Backjoon_1008 { + public static void main(String[]args)throws IOException{ + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + String str=br.readLine(); + StringTokenizer st=new StringTokenizer(str," "); + int A=(int) Double.parseDouble(st.nextToken()); + int B=(int) Double.parseDouble(st.nextToken()); + + System.out.println(A/B); + } +} diff --git a/week1/sumin/Backjoon_10171.java b/week1/sumin/Backjoon_10171.java index e69de29..6d32706 100644 --- a/week1/sumin/Backjoon_10171.java +++ b/week1/sumin/Backjoon_10171.java @@ -0,0 +1,23 @@ +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStreamWriter; + +public class Backjoon_10171{ + public static void main(String[] args) throws IOException { + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + bw.write("\\ /\\"); + bw.newLine(); // 줄 구분자 + + bw.write(" ) ( ')"); + bw.newLine(); + + bw.write("( / )"); + bw.newLine(); + + bw.write(" \\(__)|"); + + bw.flush(); + bw.close(); + } +} \ No newline at end of file diff --git a/week1/sumin/Backjoon_10172.java b/week1/sumin/Backjoon_10172.java index e69de29..fd7b3da 100644 --- a/week1/sumin/Backjoon_10172.java +++ b/week1/sumin/Backjoon_10172.java @@ -0,0 +1,20 @@ +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStreamWriter; + +public class Backjoon_10172 { + public static void main(String[] args)throws IOException{ + + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + bw.write("|\\_/|\n"); + bw.write("|q p| /}\n"); + bw.write("( 0 )\"\"\"\\\n"); + bw.write("|\"^\"` |\n"); + bw.write("||_/=\\\\__|\n"); + + bw.flush(); + bw.close(); + } + +} diff --git a/week1/sumin/Backjoon_10430.java b/week1/sumin/Backjoon_10430.java index e69de29..3fe0aca 100644 --- a/week1/sumin/Backjoon_10430.java +++ b/week1/sumin/Backjoon_10430.java @@ -0,0 +1,26 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.util.StringTokenizer; + +class Backjoon_10430{ + public static void main(String[]args)throws IOException{ + BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)); + StringTokenizer st=new StringTokenizer(bf.readLine()," "); + + int a=Integer.parseInt(st.nextToken()); + int b=Integer.parseInt(st.nextToken()); + int c=Integer.parseInt(st.nextToken()); + + bw.write((a+b)%c+"\n"); + bw.write(((a%c)+(b%c))%c+"\n"); + bw.write((a*b)%c+"\n"); + bw.write(((a%c)*(b%c))%c+"\n"); + + bw.flush(); + bw.close(); + } +} \ No newline at end of file diff --git a/week1/sumin/Backjoon_10869.java b/week1/sumin/Backjoon_10869.java index e69de29..2b9a802 100644 --- a/week1/sumin/Backjoon_10869.java +++ b/week1/sumin/Backjoon_10869.java @@ -0,0 +1,28 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.util.StringTokenizer; + +public class Backjoon_10869 { + public static void main(String[] args) throws IOException { + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out)); + String input=br.readLine(); + + StringTokenizer st= new StringTokenizer(input," "); + int a= Integer.parseInt(st.nextToken()); + int b=Integer.parseInt(st.nextToken()); + + bw.write(Integer.toString(a-b)); + bw.write(Integer.toString(a-b)); + bw.write(Integer.toString(a*b)); + bw.write(Integer.toString(a/b)); + bw.write(Integer.toString(a%b)); + + bw.flush(); + bw.close(); + } + +} diff --git a/week1/sumin/Backjoon_10926.java b/week1/sumin/Backjoon_10926.java index e69de29..96d77b4 100644 --- a/week1/sumin/Backjoon_10926.java +++ b/week1/sumin/Backjoon_10926.java @@ -0,0 +1,21 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; + +public class Backjoon_10926 { + public static void main(String[] args) throws IOException{ + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)); + String year=br.readLine(); + + bw.write(year); + bw.write("??!"); + + bw.flush(); + bw.close(); + + } + +} diff --git a/week1/sumin/Backjoon_2557.java b/week1/sumin/Backjoon_2557.java index e69de29..6e98721 100644 --- a/week1/sumin/Backjoon_2557.java +++ b/week1/sumin/Backjoon_2557.java @@ -0,0 +1,13 @@ +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStreamWriter; + +public class Backjoon_2557 { + public static void main(String[] args) throws IOException{ + BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)); + bw.write("Hello World!"); + + bw.flush(); + bw.close(); + } +} diff --git a/week1/sumin/Backjoon_3033.java b/week1/sumin/Backjoon_3033.java index e69de29..53528b5 100644 --- a/week1/sumin/Backjoon_3033.java +++ b/week1/sumin/Backjoon_3033.java @@ -0,0 +1,31 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.util.StringTokenizer; + +class BackJoon_3033{ + public static void main(String[] args) throws IOException{ + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + String input=br.readLine(); + StringTokenizer st=new StringTokenizer(input," "); + BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out)); + int king = Integer.parseInt(st.nextToken()); + int queen=Integer.parseInt(st.nextToken()); + int rook=Integer.parseInt(st.nextToken()); + int bishop=Integer.parseInt(st.nextToken()); + int knight=Integer.parseInt(st.nextToken()); + int pawn=Integer.parseInt(st.nextToken()); + + bw.write(Integer.toString(1-king)+" "); + bw.write(Integer.toString(1-queen)+" "); + bw.write(Integer.toString(2-rook)+" "); + bw.write(Integer.toString(2-bishop)+" "); + bw.write(Integer.toString(2-knight)+" "); + bw.write(Integer.toString(8-pawn)+" "); + + bw.flush(); + bw.close(); + } +} \ No newline at end of file diff --git "a/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" index caf3781..4c60b0f 100644 --- "a/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" +++ "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" @@ -63,6 +63,10 @@ int i = Integer.parseInt(bf.readLine()); //Int 2. throws IOException을 이용해서 예외처리를 해주어야 한다. +#### 메서드 정리 +* readLine() : 한 줄의 문자열을 읽음(String) +* skip(n) : n개의 문자를 스킵하고 넘어간다(Long) + ### 타입 변환하기 --- @@ -93,4 +97,11 @@ bw.close(); //스트림을 닫음 ``` 1. flush(), close()를 호출해야한다. -2. bw.write()에는 개행기능이 없기에 자동으로 개행을 해주어야 한다. \ No newline at end of file +2. bw.write()에는 개행기능이 없기에 자동으로 개행을 해주어야 한다. + + +#### 메서드 정리 +* write(s) : 문자, 문자열을 출력한다. +* newLine() : 빈 줄을 작성한다. +* flush() : 버퍼에 있는 모든 값을 출력시킨다. +* close() : 스트림을 종료한다. From 94c02e69ead3f65f0e3d38c1a98052dc4d331daf Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sat, 7 Jan 2023 12:33:58 +0900 Subject: [PATCH 15/25] =?UTF-8?q?docs=20:=20Scanner=EC=99=80=20BufferedRea?= =?UTF-8?q?der=EC=9D=98=20=EC=84=B1=EB=8A=A5=EC=9D=B4=20=EC=B0=A8=EC=9D=B4?= =?UTF-8?q?=EA=B0=80=20=EB=82=98=EB=8A=94=20=EC=9D=B4=EC=9C=A0=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\225\234 \354\236\205\354\266\234\353\240\245.md" | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git "a/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" index 4c60b0f..be45007 100644 --- "a/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" +++ "b/week1/sumin/\353\262\204\355\215\274\353\245\274 \354\235\264\354\232\251\355\225\234 \354\236\205\354\266\234\353\240\245.md" @@ -10,8 +10,7 @@ **버퍼 플러쉬(buffer flush)** 버퍼에 남아있는 데이터를 출력시킴(버퍼를 비우는 동작) - -![스크린샷 2023-01-06 오후 3.47.37.png](BufferedReader%20BufferedWriter%20ed8ee595ccba4752965ae50f4b2b9260/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-01-06_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE_3.47.37.png) +스크린샷 2023-01-07 오후 12 32 47 버퍼를 거쳐가는 데 왜 빠르냐고? @@ -43,7 +42,13 @@ import java.io.OutputStreamWriter; --- -BufferedReader은 Enter만 경계로 인식하고 받은 데이터를 String으로 고정한다. +* BufferedReader은 Enter만 경계로 인식하고 받은 데이터를 String으로 고정한다. + +Scanner에 비해 성능이 좋은 이유? +* 버퍼가 있는 스트림이다. +* 정규식을 검사하지 않는다. +즉, 하나하나 문자를 보내는 것이 아니라 한 번에 모아둔 다음에 보내니 속도가 빠르고 별다른 정규식을 검사하지 않고 문자열 그대로 받아들이기 때문에 속도가 빠르다. + ### BufferdReader사용법 From f29bc4e7afff9b352b2cba1ad97cbb5eee6f8e20 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sat, 7 Jan 2023 12:35:52 +0900 Subject: [PATCH 16/25] =?UTF-8?q?docs=20:=20stream=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...(\354\212\244\355\212\270\353\246\274).md" | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 "week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" diff --git "a/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" "b/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" new file mode 100644 index 0000000..9b3a8dd --- /dev/null +++ "b/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" @@ -0,0 +1,89 @@ +# 스트림(Stream) + +### 스트림이란? + +--- + +스트림은 데이터의 이동 흐름이다. + +즉, A수도관에서 B수도관으로 이동하는 물의 흐름이라고 할 수 있다. + +프로그래밍에서는 다음과 같은 것들을 스트림이라고 한다. + +- HTTP 응답 데이터(브라우저가 요청하고 서버가 응답하는 HTTP 응답 데이터) + +![스크린샷 2023-01-07 오전 2.34.06.png](%E1%84%89%E1%85%B3%E1%84%90%E1%85%B3%E1%84%85%E1%85%B5%E1%86%B7(Stream)%2078d7bcee8f3243c2ac4368a2e167cabf/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-01-07_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25AB_2.34.06.png) + +용도에 따라 입력 스트림(InputStream), 출력 스트림(OutputStream)으로 나뉜다. + +```java +BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); +``` + +### InpuStream + +바이트 단위로 데이터를 처리한다. + +```java +import java.io.IOException; +import java.io.InputStream; + +public class StreamTest { + public static void main(String[] args) throws IOException { + InputStream in=System.in; + + int a; + a=in.read(); + + System.out.println(a); + + } +} +``` + +read()메서드는 1Byte의 int 자료형으로 값을 받는다. + +이 int값은 아스키코드 값이기 때문에 숫자를 입력해도 아스키 코드 값으로 출력된다. + +```java +1 //입력값 +49 //출력값 +``` + +또한, System.in의 타입도 InputStream이다. + +이 방법만으로는 문자를 받기 힘드니 InputStreamReader를 사용해서 바이트 단위 데이터를 문자 단위로 처리할 수 있게하였다. + +### InputStreamReader + +문자(Character) 단위로 데이터를 처리한다. + +InputStream의 데이터를 문자로 변환하는 중개 역할을 한다. + +```java +InputStreamReader reader = new InputStreamReader(new InputStream); +``` + +InputStreamReader은 InputStream 객체를 입력으로 가지고 있어야 한다. + +### BufferedReader + +버퍼를 두어 문자를 버퍼에 일정 정도 저장해둔 뒤 한 번에 보낸다. + +```java +BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); +``` + +```java +InputStream inputstream = System.in; +InputStreamReader sr = new InputStreamReader(inputstream); +BufferedReader br = new BufferedReader(sr); +``` + +1. **바이트 단위**로 데이터를 처리하는 InputStream를 통해서 데이터를 입력받는다., +2. 바이트 단위 데이터를 **문자(Character) 단위**로 처리하기 위해서 InputStreamReader로 감싸준다. +3. 버퍼(Buffer)를 이용해 입력받은 문자를 쌓아둔 뒤 한 번에 **문자열(String)**로 보낸다. + +[System.in](http://System.in) == InputStream → InputStreamReader → BufferedReader + +바이트 단위 → Char 단위 → String 단위 \ No newline at end of file From 30286bf94c5f670d621113aaea82ab8d2fe91733 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sat, 7 Jan 2023 12:39:35 +0900 Subject: [PATCH 17/25] =?UTF-8?q?docs=20:=20=EC=82=AC=EC=A7=84=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Stream(\354\212\244\355\212\270\353\246\274).md" | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git "a/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" "b/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" index 9b3a8dd..deb800b 100644 --- "a/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" +++ "b/week1/sumin/Stream(\354\212\244\355\212\270\353\246\274).md" @@ -1,7 +1,6 @@ # 스트림(Stream) ### 스트림이란? - --- 스트림은 데이터의 이동 흐름이다. @@ -12,7 +11,8 @@ - HTTP 응답 데이터(브라우저가 요청하고 서버가 응답하는 HTTP 응답 데이터) -![스크린샷 2023-01-07 오전 2.34.06.png](%E1%84%89%E1%85%B3%E1%84%90%E1%85%B3%E1%84%85%E1%85%B5%E1%86%B7(Stream)%2078d7bcee8f3243c2ac4368a2e167cabf/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-01-07_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25AB_2.34.06.png) +스크린샷 2023-01-07 오후 12 39 02 + 용도에 따라 입력 스트림(InputStream), 출력 스트림(OutputStream)으로 나뉜다. @@ -21,6 +21,7 @@ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); ``` ### InpuStream +--- 바이트 단위로 데이터를 처리한다. @@ -51,10 +52,12 @@ read()메서드는 1Byte의 int 자료형으로 값을 받는다. ``` 또한, System.in의 타입도 InputStream이다. +스크린샷 2023-01-07 오후 12 12 47 이 방법만으로는 문자를 받기 힘드니 InputStreamReader를 사용해서 바이트 단위 데이터를 문자 단위로 처리할 수 있게하였다. ### InputStreamReader +--- 문자(Character) 단위로 데이터를 처리한다. @@ -65,9 +68,10 @@ InputStreamReader reader = new InputStreamReader(new InputStream); ``` InputStreamReader은 InputStream 객체를 입력으로 가지고 있어야 한다. +스크린샷 2023-01-07 오후 12 17 28 ### BufferedReader - +--- 버퍼를 두어 문자를 버퍼에 일정 정도 저장해둔 뒤 한 번에 보낸다. ```java From dcb1c08890a2b248361df5ee1f7026de348f34ba Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sun, 8 Jan 2023 15:37:54 +0900 Subject: [PATCH 18/25] =?UTF-8?q?[BOJ]=20=EC=8A=A4=ED=83=9D/=EC=8B=A4?= =?UTF-8?q?=EB=B2=844/220ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_10828.java | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 week2/sumin/Backjoon_10828.java diff --git a/week2/sumin/Backjoon_10828.java b/week2/sumin/Backjoon_10828.java new file mode 100644 index 0000000..0a17f37 --- /dev/null +++ b/week2/sumin/Backjoon_10828.java @@ -0,0 +1,67 @@ +package stack; + +import java.io.*; +import java.util.Stack; + +public class Backjoon_10828 { + private static Stack integerStack = new Stack<>(); + private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + + for (int i = 0; i < N; i++) { + String[] input = br.readLine().split(" "); + calculateStack(input); + } + + bw.flush(); + bw.close(); + br.close(); + } + + private static void calculateStack(String[] input) throws IOException { + String command = input[0]; + + if (command.equals("push")) { + integerStack.push(Integer.parseInt(input[1])); + } + + if (command.equals("top")) { + if (integerStack.size() != 0) { + bw.write(String.valueOf(integerStack.peek())); + bw.write("\n"); + } else { + bw.write(String.valueOf(-1)); + bw.write("\n"); + } + } + + if (command.equals("size")) { + bw.write(String.valueOf(integerStack.size())); + bw.write("\n"); + } + + if (command.equals("empty")) { + if (integerStack.isEmpty()) { + bw.write(String.valueOf(1)); + bw.write("\n"); + } else { + bw.write(String.valueOf(0)); + bw.write("\n"); + } + } + + if (command.equals("pop")) { + if (integerStack.size() != 0) { + bw.write(String.valueOf(integerStack.pop())); + bw.write("\n"); + } else { + bw.write(String.valueOf(-1)); + bw.write("\n"); + } + + } + } +} From dc29171e947a02fa360a54f09230e98c35bbf6f7 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Sun, 8 Jan 2023 19:15:45 +0900 Subject: [PATCH 19/25] =?UTF-8?q?[BOJ]=209012=20/=20=EC=8B=A4=EB=B2=844=20?= =?UTF-8?q?/=20136ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_9012.java | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 week2/sumin/Backjoon_9012.java diff --git a/week2/sumin/Backjoon_9012.java b/week2/sumin/Backjoon_9012.java new file mode 100644 index 0000000..4fb390c --- /dev/null +++ b/week2/sumin/Backjoon_9012.java @@ -0,0 +1,54 @@ +package week2.sumin; + +import java.io.*; +import java.util.Stack; + +public class Backjoon_9012 { + public static void main(String[] args) throws IOException { + BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)); + + int T=Integer.parseInt(br.readLine()); + + for(int i=0;istack=new Stack<>(); + + for(int i=0;i Date: Sun, 8 Jan 2023 20:08:34 +0900 Subject: [PATCH 20/25] =?UTF-8?q?[BOJ]=2010773=20/=20=EC=8B=A4=EB=B2=844?= =?UTF-8?q?=20/=20268ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_10773.java | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 week2/sumin/Backjoon_10773.java diff --git a/week2/sumin/Backjoon_10773.java b/week2/sumin/Backjoon_10773.java new file mode 100644 index 0000000..c47e942 --- /dev/null +++ b/week2/sumin/Backjoon_10773.java @@ -0,0 +1,45 @@ +package week2.sumin; + + +import java.io.*; +import java.util.Stack; + +public class Backjoon_10773 { + private static Stack stack = new Stack<>(); + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + int K = Integer.parseInt(br.readLine()); + + for (int i = 0; i < K; i++) { + makeStack(Integer.parseInt(br.readLine())); + } + + bw.write(String.valueOf(calculateSum())); + + bw.flush(); + bw.close(); + br.close(); + } + + //입력받은 숫자를 기반으로 stack 만들기 + private static void makeStack(int num) { + if (num != 0) { + stack.push(num); + } else { + stack.pop(); + } + } + + //stack의 값 계산하기 + private static int calculateSum() { + int sum = 0; + int stackSize=stack.size(); + for (int i = 0; i < stackSize; i++) { + sum+=stack.pop(); + } + return sum; + } +} From eeef6761af608d2aafe2022e0ec6abd4b80d8106 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Mon, 9 Jan 2023 11:22:51 +0900 Subject: [PATCH 21/25] =?UTF-8?q?[BOJ]=201935=20/=20=EC=8B=A4=EB=B2=843=20?= =?UTF-8?q?/=20136ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_1935.java | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 week2/sumin/Backjoon_1935.java diff --git a/week2/sumin/Backjoon_1935.java b/week2/sumin/Backjoon_1935.java new file mode 100644 index 0000000..e3a08d8 --- /dev/null +++ b/week2/sumin/Backjoon_1935.java @@ -0,0 +1,61 @@ +package week2.sumin; + +import java.io.*; +import java.util.*; + +public class Backjoon_1935 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + //피연산자의 개수 + int N = Integer.parseInt(br.readLine()); + + //후위 표기식 + char[] array = br.readLine().toCharArray(); + + Stack stack = new Stack<>(); + //피연산자와 실제 숫자 관계 맺기 + Map map = new HashMap<>(); + + //피연산자는 A부터 시작하고, N개의 피연산자를 갖는다. + char key = 'A'; + for (int i = 0; i < N; i++) { + map.put(key, Double.parseDouble(br.readLine())); + key++; + } + //후위연산자의 개수만큼 반복한다. + for (int j = 0; j < array.length; j++) { + //대문자라면,그에 해당하는 값을 찾아서 스택에 넣는다. + //대문자 아스키 코드 값... 뭐지 + if (array[j] >= 'A' && array[j] <= 'Z') { + stack.push(map.get(array[j])); + } + + //연산자라면 스택에서 피연산자 2개의 값을 꺼내서 연산을 한다. + else { + double second = stack.pop(); + double first = stack.pop(); + switch (array[j]) { + case '+': + stack.push(first + second); + break; + case '-': + stack.push(first - second); + break; + case '*': + stack.push(first * second); + break; + case '/': + stack.push(first / second); + break; + } + } + } + bw.write(String.valueOf(String.format("%.2f",stack.pop()))); + + bw.flush(); + bw.close(); + br.close(); + } +} From 3000eb916369006eec9c437360aa149c16ffb973 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Mon, 9 Jan 2023 14:18:20 +0900 Subject: [PATCH 22/25] =?UTF-8?q?docs=20:=20=ED=9B=84=EC=9C=84=ED=91=9C?= =?UTF-8?q?=EA=B8=B0=EC=8B=9D=EA=B3=BC=20=EC=A4=91=EC=9C=84=ED=91=9C?= =?UTF-8?q?=EA=B8=B0=EC=8B=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04\355\221\234\352\270\260\354\213\235.md" | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 "week2/sumin/\355\233\204\354\234\204\355\221\234\352\270\260\354\213\235\352\263\274 \354\244\221\354\234\204\355\221\234\352\270\260\354\213\235.md" diff --git "a/week2/sumin/\355\233\204\354\234\204\355\221\234\352\270\260\354\213\235\352\263\274 \354\244\221\354\234\204\355\221\234\352\270\260\354\213\235.md" "b/week2/sumin/\355\233\204\354\234\204\355\221\234\352\270\260\354\213\235\352\263\274 \354\244\221\354\234\204\355\221\234\352\270\260\354\213\235.md" new file mode 100644 index 0000000..79de08e --- /dev/null +++ "b/week2/sumin/\355\233\204\354\234\204\355\221\234\352\270\260\354\213\235\352\263\274 \354\244\221\354\234\204\355\221\234\352\270\260\354\213\235.md" @@ -0,0 +1,47 @@ +### 후위 표기식 + +사칙연산에는 여러 가지 규칙이 있다. + +* 곱하기 나누기는 다른 연산보다 우선시 되어야 한다 +* 괄호가 있는 경우는 모든 연산의 최우선이 된다. + +이러한 규칙들로 때문에 사칙연산을 프로그래밍하기 힘들어진다. +하지만, 후위 표기식을 이용하면 더 쉽게 가능하다. + + + +#### 중위 표기식 + +피연산자(숫자)사이에 연산자가 들어가는 형태 + +ex) 3+5*2 + +#### 후위 표기식 + +피연산자가 먼저 쓰이고, 그 뒤에 연산자가 나오는 형태 + +* 사칙연산의 우선순위를 생각하지 않아도 되기에 훨씬 직관적이다. + +#### 후위 표기식 -> 중위 표기식 + +* 예제) 4 7 2 + * + 1) 왼쪽부터 순차적으로 읽으면서 연산자를 찾는다. + 2) +연산자를 기준으로 앞쪽 두 개의 피연산자(7,2)를 더한다. + 3) 연산을 진행한 후 연산된 값을 적어둔다. 4 9 * + 4) 다시 1,2,3을 진행한다. + 1) 왼쪽부터 순차적으로 읽으면서 연산자를 찾는다. + 2) *연산자를 기준으로 앞쪽 두 개의 피연산자(4,9)를 곱한다. + 3) 연산을 진행한 후 연산된 값을 적어둔다 36 + +​ + +#### 중위 표기식 -> 후위 표기식 + +* 예제) 4 * 7+2 + 1. 숫자일 때는 출력을 해준다. + 2. 연산자 일 때는 + 1. 스택에 아무것도 없으면 -> 무조건 스택에 넣는다. + 2. 스택에 다른 연산자가 있으면 -> 넣고자하는 연산자가 스택에 있는 다른 연산자보다 우선순위가 높을 때까지 스택에 있는 다른 연산자를 출력하고, 해당 연산자를 스택에 넣는다. + 3. 연산자 우선순위 주의할 점 + 1. ( : 무조건 스택에 넣는다. + 2. ) : 여는 괄호와 그 사이에 있는 연산을 처리해주고, 여는 괄호를 pop해준다. \ No newline at end of file From 6b5ee39808c1b4a60f273ae4cb3d2f0367dbca64 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Mon, 9 Jan 2023 15:33:02 +0900 Subject: [PATCH 23/25] =?UTF-8?q?[BOJ]=201406=20/=20=EC=8B=A4=EB=B2=842=20?= =?UTF-8?q?/=20896ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_1406.java | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 week2/sumin/Backjoon_1406.java diff --git a/week2/sumin/Backjoon_1406.java b/week2/sumin/Backjoon_1406.java new file mode 100644 index 0000000..c199c3f --- /dev/null +++ b/week2/sumin/Backjoon_1406.java @@ -0,0 +1,65 @@ +import java.io.*; +import java.util.Stack; + +public class Backjoon_1406 { + public static void main(String[] args) throws IOException { + //커서를 기준으로 왼쪽스택, 오른쪽 스택으로 구분함 + Stack leftStack = new Stack<>(); + Stack rightStack = new Stack<>(); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringBuilder sb = new StringBuilder(); + + //초기값은 다 커서보다 왼쪽에 있으니깐 leftStack에 넣기 + String[] array = br.readLine().split(""); + for (int i = 0; i < array.length; i++) { + leftStack.push(array[i]); + } + + // 입력할 명령어의 개수 + int M = Integer.parseInt(br.readLine()); + + //명령어 실행 + for (int i = 0; i < M; i++) { + String[] input = br.readLine().split(" "); + String command = input[0]; + switch (command) { + case "P": + leftStack.push(input[1]); + break; + case "D": + if(!rightStack.isEmpty()){ + leftStack.push(rightStack.pop()); + } + break; + case "L": + if(!leftStack.isEmpty()){ + rightStack.push(leftStack.pop()); + } + break; + case "B": + if(!leftStack.isEmpty()){ + leftStack.pop(); + } + break; + } + } + + //왼쪽 스택에 있는 문자열을 오른쪽 스택으로 올린다. + while (!leftStack.isEmpty()) { + rightStack.push(leftStack.pop()); + } + + //오른쪽 스택에 있는 값을 하나씩 pop해서 문자열을 만든다. + while (!rightStack.isEmpty()) { + sb.append(rightStack.pop()); + } + + bw.write(String.valueOf(sb)); + + bw.flush(); + bw.close(); + br.close(); + } + +} From 5f629c2f898393cc0ef86a1e2df2027c8d4373d1 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Tue, 10 Jan 2023 14:28:39 +0900 Subject: [PATCH 24/25] =?UTF-8?q?[BOJ]=2018258=20/=20=EC=8B=A4=EB=B2=844?= =?UTF-8?q?=20/=201572ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_18528.java | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 week2/sumin/Backjoon_18528.java diff --git a/week2/sumin/Backjoon_18528.java b/week2/sumin/Backjoon_18528.java new file mode 100644 index 0000000..fca2669 --- /dev/null +++ b/week2/sumin/Backjoon_18528.java @@ -0,0 +1,51 @@ +package week2.sumin; + +import java.io.*; +import java.util.*; + +public class Backjoon_18528 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + StringBuilder sb = new StringBuilder(); + Deque deq = new LinkedList<>(); + + int num = Integer.parseInt(br.readLine()); + + for (int i = 0; i < num; i++) { + String[] command = br.readLine().split(" "); + switch (command[0]) { + case "push": + deq.add(Integer.parseInt(command[1])); + break; + case "pop": + sb.append(deq.isEmpty() ? "-1" : deq.poll()); + sb.append("\n"); + break; + case "size": + sb.append((deq.size())); + sb.append("\n"); + break; + case "empty": + sb.append(deq.isEmpty() ? 1 : 0); + sb.append("\n"); + break; + case "front": + sb.append(deq.isEmpty() ? "-1" : String.valueOf(deq.peekFirst())); + sb.append("\n"); + break; + case "back": + sb.append(deq.isEmpty() ? -1 : deq.peekLast()); + sb.append("\n"); + break; + } + + } + bw.write(String.valueOf(sb)); + bw.flush(); + + bw.close(); + br.close(); + } + +} From 634613965f989c4e2ae1aed1b682ee551b079573 Mon Sep 17 00:00:00 2001 From: kssumin <201566@jnu.ac.kr> Date: Thu, 12 Jan 2023 22:52:03 +0900 Subject: [PATCH 25/25] =?UTF-8?q?[BOJ]=2010845=20/=20=EC=8B=A4=EB=B2=844?= =?UTF-8?q?=20/=20200ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/sumin/Backjoon_10828.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/week2/sumin/Backjoon_10828.java b/week2/sumin/Backjoon_10828.java index 0a17f37..ee7e023 100644 --- a/week2/sumin/Backjoon_10828.java +++ b/week2/sumin/Backjoon_10828.java @@ -1,4 +1,4 @@ -package stack; +package week2.sumin import java.io.*; import java.util.Stack;