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+StringTokenizer or 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