Java Grammar
Java Grammar / Data Structure / Algorithm
Grammar
์
์ถ๋ ฅ (I/O)
StringTokenizer ๋ฒ์ (๊ฐ๋จ)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
long m = Long.parseLong(st.nextToken());์ถ๋ ฅ
// ๋น ๋ฅธ ์ถ๋ ฅ
StringBuilder sb = new StringBuilder();
sb.append("answer=").append(42).append('\n');
System.out.print(sb);
// ํฌ๋งท ์ถ๋ ฅ
System.out.printf("%.6f%n", 3.1415926535); // ๋ฐ์ฌ๋ฆผ 6์๋ฆฌ + ๊ฐํI/O ํ
๋ฐ๋ณต ์ถ๋ ฅ์
StringBuilder์ ๋ชจ์์ ํ ๋ฒ์.next()๋ค ๋ฐ๋กnextLine()์ฐ๋ฉด ๋น ์ค ์กํ ์ ์์(๋ฒํผ์ ๊ฐํ ๋จ์ ์ฃผ์).ํฐ ์ ๋ ฅ:
Scanner์ง์(๋๋ฆผ).
๊ธฐ๋ณธ ์๋ฃํ
byte
1
-128 ~ 127
๋๋ญ
short
2
ยฑ3e4
๋๋ญ
int
4
ยฑ2.1e9
๊ธฐ๋ณธ
long
8
ยฑ9e18
ํฉ/๊ณฑ/๊ฑฐ๋ฆฌ ๋์ ์ ์ฌ์ฉ
float
4
~7์๋ฆฌ ์ ๋ฐ
๊ฑฐ์ ์ ์
double
8
~15์๋ฆฌ ์ ๋ฐ
์ค์ ๊ณ์ฐ
char
2
0 ~ 65535
์ ๋์ฝ๋ ์ฝ๋ ์ ๋
boolean
1
true/false
๋ฆฌํฐ๋ด
ํ๋ณํ & ์ค๋ฒํ๋ก
์ค์ ๋น๊ต
String
๋ถ๋ณ(immutable) โ ๋์ ๊ฒฐํฉ์ StringBuilder ์ฌ์ฉ.
๋ฌธ์-์ซ์ ๋ณํ
Array
์ ์ธ/์ด๊ธฐํ
๋ณต์ฌ/์ฑ์ฐ๊ธฐ
์ ๋ ฌ
2D ์ขํ/์ด๋ฒคํธ ์ ๋ ฌ
์ด๋ถ ํ์
๋ฆฌ์คํธ์ ํผ์ฉ
์กฐ๊ฑด๋ฌธ / ๋ฐ๋ณต๋ฌธ
์์ฃผ ์ฐ๋ ํจํด
์ต์๊ฐ/์ต๋๊ฐ ๊ฐฑ์
๋ฒ์ ์ฒดํฌ
Math
๊ธฐ๋ณธ
๋์ (ํ ์คํธ์ฉ)
์ ์ ์ฐ์ฐ ์ ํธ
์ขํ/๊ฒฉ์ ์ด๋
Tip
์ ์ถ๋ ฅ
Scanner๋๋ฆผ โBufferedReader+StringTokenizeror FastScanner.๋ง์ง๋ง ๊ฐํ/๊ณต๋ฐฑ, ํฌ๋งท ๋ฌธ์์ด(๋์๋ฌธ์) ์ ํํ.
์๋ฃํ
๋์ ํฉ/๊ณฑ/๊ฑฐ๋ฆฌ/์ธ๋ฑ์ค ๊ณฑ์ : ๋ฐ๋์
long.์ค๋ฒํ๋ก ๋ฐฉ์ง:
(long)a * b,a / gcd(a,b) * b.
๋ฐฐ์ด/๋ฆฌ์คํธ
2์ฐจ์
fill: ํ๋ง๋ค ๋ฐ๋ณต ํ์.Arrays.sort๋น๊ต์:a[1]-b[1]๋์Integer.compare(a[1], b[1])(์ค๋ฒํ๋ก ๋ฐฉ์ง).
์๊ณ ๋ฆฌ์ฆ ์ ํ
์ต๋จ๊ฑฐ๋ฆฌ: ๋ฌด๊ฐ์ค์นโBFS, 0/1โ0-1 BFS, ์์ ๊ฐ์ค์นโDijkstra.
๊ตฌ๊ฐ ์ง์/์ ๋ฐ์ดํธ ๋ฐ๋ณตโFenwick/SegmentTree.
๋ฐฉ๋ฌธ/๊ฑฐ๋ฆฌ
์ํ๊ฐ ๋์ด๋ ๋
visited์ฐจ์ ํ์ฅ(์:visited[x][y][broken]).Dijkstra์์
if (d != dist[u]) continue;ํ์.
์ฑ๋ฅ
๋ฌธ์์ด ๋์ ์
StringBuilder.์ ๋ ฌ/ํ/๋งต ์ด๊ธฐ ์ฉ๋ ๊ณ ๋ ค(๋๊ท๋ชจ ์ ๋ ฅ).
๋ถํ์ํ ๋ฐ์ฑ/์ธ๋ฐ์ฑ ์ค์ด๊ธฐ(๊ฐ๋ฅํ๋ฉด primitive ๋ฐฐ์ด).
๐ก ํ
๋ฉด ์ด๋ฆ์ ๊ณ ์ ํ๊ณ , ๊ฐ ๋ฐฉํฅ์ ๋ง๋ ๊ณ ์ ๋ ์นํ๋ง ๊ตฌํํ๋ฉด ๋ฒ๊ทธ๊ฐ ํฌ๊ฒ ์ค์ด๋ ๋ค.
๋ค๋ฅธ ๊ท์น(์: ๋ฐ๋ฅ๋ฉด ๋ณต์ฌ ๋ฐ๋ ๋ฑ)๋ ์ ์ํธ์์ฉ ๋ถ๋ถ๋ง ๋ฐ๊พธ๋ฉด ๋๋ค.
Last updated