๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JAVA13

10. Casting (ํ˜•๋ณ€ํ™˜) Casting ์ด๋ž€? ์ž๋ฃŒํ˜•์—์„œ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ Casting(ํ˜•๋ณ€ํ™˜)์ด๋ผ๊ณ  ํ•œ๋‹ค.3. ์ž๋ฃŒํ˜• ํฌ์ŠคํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๊ฐ ์ž๋ฃŒํ˜•์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ, ์ž๋ฃŒํ˜• ํฌ๊ธฐ ๋งŒํผ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณต๊ฐ„์— ๊ฐ’์„ ๋„ฃ์Œ์œผ๋กœ์จ ํ• ๋‹น์ด ๋˜๋Š”๋ฐ Casting๋„ ๊ฐ™์€ ์›๋ฆฌ์ด๋‹ค. long a - [size = 8], int b - [size = 4] ์ด๋ฏธ a์™€ b๋ฅผ ์„ ์–ธํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ € ๊ณต๊ฐ„์ด ํ• ๋‹น์ด ๋œ๋‹ค.์ด ๋•Œ, b์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ a์— ๋„ฃ์–ด๋ดค์ž 8๊ฐœ์˜ size ์ค‘ 4๊ฐœ์˜ size๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.์ด๋Ÿฐ ์›๋ฆฌ ๋•Œ๋ฌธ์— Casting์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ž‘์€ Data type ์—์„œ ํฐ Data type๋งŒ? ์œ„ ์˜ˆ์‹œ๋งŒ ๋ณด๋ฉด ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘์€ ์ž๋ฃŒํ˜•์—์„œ ๋” ํฐ ์ž๋ฃŒํ˜•์œผ๋กœ ๋Œ€์ž…ํ•  ๋•Œ๋งŒ.. 2024. 7. 14.
Java Fast I/O 3 (feat. BOJ, String, StringBuilder) ์•ž์„  ํฌ์ŠคํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ๋žŒ๋“ค์€ PS์—์„œ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ StringBuilder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. StringBuilderabstract sealed class AbstractStringBuilder implements Appendable, CharSequence permits StringBuilder, StringBuffer { byte[] value; byte coder; boolean maybeLatin1; int count; private static final byte[] EMPTYVALUE = new byte[0]; AbstractStringBuilder() { value = EMPTYVALUE; } .. 2024. 7. 6.
Java Fast I/O 2 (feat. BOJ, StringTokenizer, String.split()) ์ด๋ฒˆ ํฌ์ŠคํŠธ์—๋Š” StringTokenizer์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.PS์—์„œ ์–ด๋–ป๊ฒŒ๋“  ์†๋„๋ฅผ ์กฐ๊ธˆ ๋” ๋†’์—ฌ๋ณด๋ ค๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ฃ ?๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ StringTokenizer ์ž…๋‹ˆ๋‹ค. ์ •๋ง StringTokenizer์˜ ์„ฑ๋Šฅ์ด ๊ทธ๋ ‡๊ฒŒ ์šฐ์ˆ˜ํ• ๊นŒ? ์ง์ ‘ ํ…Œ์ŠคํŠธ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.package com.study.datastructrue.string;import java.util.StringTokenizer;public class DevidePerformTest { public static void main(String[] args) { String str = "one two three four five one two three four five one two three four five.. 2024. 7. 6.
Java Fast I/O (feat. BOJ, BufferedReader, BufferedWriter) BOJ JAVA ํ’€์ด์—์„œ ์™œ BufferedReader, BufferedWriter ๋ฅผ ์‚ฌ์šฉํ• ๊นŒ? ์‚ฌ๋žŒ๋“ค์€ PS ์ค‘ ์‹œ๊ฐ„ ํšจ์œจ์„ ์กฐ๊ธˆ์ด๋ผ๋„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ Fast I/O๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.๋ณดํ†ต I/O ์†๋„๋Š” Default I/O, Fast I/O, Custom Fast I/O ๊ฐ€ ์žˆ๋‹ค.์ฐ ๊ณ ์ˆ˜๋“ค์€ ์ข…์ข… Custom Fast I/O๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‚˜๋Š” ๊ธฐ๋ณธ์ ์ธ Fast I/O๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. (์ดˆ๋ณด) Python ์—์„œ๋Š” sys.stdin.readline, C++ ์—์„œ๋Š” ios_base::sync_with_stdio(0), C์—์„œ๋Š” fread() ๋“ฑJava์—์„œ๋Š” BufferedReader ๋‚˜ BufferedWriter๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ•œ ๋ฒˆ ์•Œ์•„๋ณด์ž. BufferedR.. 2024. 7. 6.
4. ์ž…/์ถœ๋ ฅ (Input/Output, I/O) ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์ด๋ผ ๊ธ€์„ ์ž‘์„ฑํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋„ค์š”. ๋‹ค์‹œ ๋ธ”๋กœ๊ทธ ๊ธ€ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ž…/์ถœ๋ ฅ์— ๋Œ€ํ•ด ๋นผ๋œจ๋ ค๋จน์–ด์„œ ์ง€๊ธˆ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž…/์ถœ๋ ฅ์ด๋ž€? ์ž๋ฐ”์—์„œ ์ž…/์ถœ๋ ฅ์ด๋ž€ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋А๋‚Œ ๊ทธ๋Œ€๋กœ. ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ ํฌ์ŠคํŠธ ๊ธ€ ๋˜๋Š” ๋Œ“๊ธ€๊ณผ ๊ฐ™์ด ํ…์ŠคํŠธ ๋ฐ•์Šค์— ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ. ํ‚ค๋ณด๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ํ–‰์œ„๊ฐ€ ์ž…๋ ฅ์ด๊ณ  ์ž‘์„ฑ๋œ ๊ธ€์ด ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ์ด ์ถœ๋ ฅ์ด๋‹ค. ์ž๋ฐ”์—์„œ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ• public class Main { public static void main(String[] args){ System.out.println("Hello World!"); } } ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด Intelli J์™€ Eclipse๊ฐ™์€ IDE์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ์ž๋ฐ”.. 2024. 2. 24.
9. ๋ฐ˜๋ณต๋ฌธ - while ๋ฌธ, do while ๋ฌธ while ๋ฌธ ์ด๋ž€? while๋ฌธ๋„ for๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ~๋™์•ˆ ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ „ ํฌ์ŠคํŠธ์—์„œ for๋ฌธ์—์„œ ~๋™์•ˆ์„ ์˜๋ฏธํ•˜๋Š” ๊ณณ์ด ์กฐ๊ฑด์‹์ด๋ผ๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. while๋ฌธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ '์กฐ๊ฑด์‹' ๋™์•ˆ ๋ฐ˜๋ณต์„ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ๊ธฐ ์œ„ํ•ด์„œ for๋ฌธ์˜ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ๋ณต์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์ดˆ๊ธฐ๊ฐ’), ๋จผ์ €, '์ดˆ๊ธฐ๊ฐ’'์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์€ 0๊ฐœ ์ด์ƒ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์•„๋„ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ด์ฃ . ์ €๋Š” 3๊ฐœ์˜ ๋ณ€์ˆ˜ i, j, cnt๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ํŠน์ • ๊ฐ’์„ ํ• ๋‹น ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์กฐ๊ฑด์‹), ์กฐ๊ฑด๋™์•ˆ for๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์€ i < j ์ด๋ฏ€๋กœ, (i : 10) < (j : 20) ๋ฅผ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰์—์„œ ์กฐ๊ฑด.. 2024. 2. 10.
8. ๋ฐ˜๋ณต๋ฌธ - for ๋ฌธ ๋ฐ˜๋ณต๋ฌธ์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฐ˜๋ณต๋ฌธ์ด๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ˜๋ณตํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ๋œปํ•œ๋‹ค.๋ฐ˜๋ณต๋ฌธ์—๋Š” ์ž˜ ์•Œ๋ ค์ง„ for๋ฌธ๊ณผ while๋ฌธ์ด ์กด์žฌํ•œ๋‹ค.์ถ”๊ฐ€๋กœ do while๋ฌธ๋„ ์กด์žฌํ•˜๋Š”๋ฐ ์•„์ง ๊นŒ์ง€๋Š” ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š์•˜๋‹ค. for๋ฌธ for๋ฌธ์€ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ์ด ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค.ํ•˜์ง€๋งŒ, ์ƒ๊ฐ๋ณด๋‹ค ํ—ท๊ฐˆ๋ คํ•˜๋Š” ํฌ์ธํŠธ๋“ค์ด ์žˆ์–ด์„œ ๊ทธ๊ฒƒ์„ ์งš๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์ ธ์™”๋‹ค. ์šฐ์„ , ์›ฌ๋งŒํ•œ ์ฑ…์—์„œ ์„ค๋ช…ํ•˜๋Š” for๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.for (int i = 0; i  ๋Œ€๋ถ€๋ถ„ ์—ฌ๊ธฐ์„œ int i = 0 ์„ ์ดˆ๊ธฐ๊ฐ’, i for (์ดˆ๊ธฐ๊ฐ’; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹)๊ทผ๋ฐ ์ €๋Š” ํ—ท๊ฐˆ๋ฆฌ๋˜ ๋ถ€๋ถ„์ด ์ข€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๋งจ ์ฒ˜์Œ for๋ฌธ์„ ์ ‘ํ–ˆ์„ ๋•Œ, ์กฐ๊ฑด์‹์ด ' i ' ์ด๋ฉด i ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ.. 2024. 2. 10.
7. ๋‹ค์ฐจ์› ๋ฐฐ์—ด (Multi Dimensional Array) 2์ฐจ์› ๋ฐฐ์—ด์ด๋ž€? ์šฐ๋ฆฌ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์— ์ต์ˆ™ํ•˜๋‹ค. ์ง€๊ธˆ ์ด ๊ธ€์„ ๋ณด๋Š” ํ™”๋ฉด๋„ x by y์˜ ํ•ด์ƒ๋„๋ฅผ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด์ด๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, 1์ฐจ์› ๋ฐฐ์—ด์ด๋ž‘ ๋‹ค๋ฅผ๊ฒŒ ์—†์–ด์„œ ์†”์งํžˆ ๋ญ˜ ์จ์•ผ ํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์กฐ๊ธˆ๋งŒ ์ƒ๊ฐ์„ ๋ฐ”๊พธ๋ฉด ๋˜๋Š”๊ฒŒ 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ์„œ... 1์ฐจ์› ๋ฐฐ์—ด์ด ๋ฐฐ์—ด ํ˜•ํƒœ๋ฅผ ๋ ๋Š” ๊ฒƒ์ด 2์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋ด์•ผํ• ๊นŒ์š”? ๋ณ€์ˆ˜ ํ๋ธŒ๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” 3์ฐจ์›์œผ๋กœ ๋ณด์ด๋Š” ํ•ด๋‹น ํ๋ธŒ๋Š” ํ•œ ๋ธ”๋Ÿญ์ด ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ๋„ ๋˜‘๊ฐ™์ด int cube ๋ผ๊ณ  ํ•˜๋ฉด ์ € ํ•œ ๋ธ”๋Ÿญ์€ int ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ์„ ํ˜• ๋ฐฐ์—ด (1์ฐจ์› ๋ฐฐ์—ด) ๊ทธ๋Ÿผ ๋ฐฐ์—ด์€? ์ง€๊ฐ‘์„ ์„ค๋ช…ํ–ˆ๋“ฏ, ํ๋ธŒ์—์„œ๋„ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ๊ฐ™์€ '๋‹จ์œ„'๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์ด ๋ฐฐ์—ด์ธ๋ฐ์š”. ํ•ด๋‹น ์‚ฌ์ง„์—์„œ๋Š” block์ด 3๊ฐœ ์žˆ๋‹ค๋Š”.. 2024. 2. 10.
6. ๋ฐฐ์—ด (Array) ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์—ด์‹ฌํžˆ ์จ๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, ์ตœ๊ทผ์— ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๋งŽ์ด ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๊ฒฐ๊ตญ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ . ๊ธ€์„ ์ฃผ๋กœ ์“ฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๋‹ค๋งŒ, ์ œ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๊ณ  ๊ธฐ๋ณธ์„ ๋‹ค์‹œ ์ฑ„์šฐ๋Š” ๋А๋‚Œ์˜ ๋ธ”๋กœ๊ทธ๋ผ์„œ ๊ณต๋ถ€์˜ ์ง€์นจ์„œ๊ฐ€ ๋  ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.๋ช‡ ๋ฒˆ์”ฉ, ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ์ œ ๊ธ€์„ ์ฝ์–ด์ฃผ์‹œ๋Š” ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ฐฐ์—ด์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?๋ฐฐ์—ด์€ ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ƒ๋‹นํ•œ๋ฐ์š”.ํ˜„์žฌ ๊ธ€์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” Java์˜ ๊ธฐ๋ณธ์ด๋ก ์ด๋ฏ€๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ๋งŒ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ํ˜„์‹ค๊ณผ ๋น—๋Œ€์–ด ์ƒ๊ฐํ•ด๋ณด์ž. ์ˆซ์ž๊ฐ€ `1, 2, 3, 4`์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  ์žˆ์œผ๋ฉด ์šฐ๋ฆฌ๋Š” '์ˆ˜๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ๋‹ค.' ๋ผ๊ณ  ํ•˜์ฃ ?๊ธ€์ž๊ฐ€ `ใ…ˆ, ใ…ฃ, ใ„ฑ, ใ…, ใ…‚`์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  ์žˆ์„ ๋•Œ, ์˜ฌ๋ฐ”๋ฅธ ๊ธ€์ž๋กœ '๋ฐฐ์—ด'ํ•ด ๋ณด์„ธ์š”. ๋ผ๊ณ ๋„ ํ•˜์ฃ ?์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์—ด ํ•œ๋‹ค๋ฉด.. 2024. 2. 10.