๐ ํน์ ์์น์ ๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ
๐ ๋ถ๋ถ ๋ฌธ์์ด ์ถ์ถ
๐ ํน์ ๋ฌธ์๋ก ๋ฌธ์์ด ๋ถํ
๐ ๋ฌธ์์ด ์นํ
๐ ์ ๊ท์ ๊ธฐ๋ฐ ์นํ
๐ ํน์ ๋ฌธ์/๋ฌธ์์ด์ ์ฒซ ๋ฑ์ฅ ์์น
๐ ๋ฌธ์์ด ํฌํจ ์ฌ๋ถ ํ์ธ
๐ ๋ฌธ์์ด์ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํ
๐ ๋ฌธ์์ด ์๋ค ๊ณต๋ฐฑ ์ ๊ฑฐ
๐ ๋ฐฐ์ด์ ํน์ ์ธ๋ฑ์ค์ ์์ ๊ฐ์ ธ์ค๊ธฐ
๐ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค. (int[]๊ฐ ์๋ Integer[] ์ฌ์ฉ)
๐ ๋ฐฐ์ด์ ์ง์ ๋ ๊ธธ์ด๋งํผ ๋ณต์ฌํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ํน์ ๋ถ๋ถ์ ๋ณต์ฌํฉ๋๋ค. (end๋ ํฌํจ๋์ง ์์)
๐ ๋ฐฐ์ด์ ๋ฆฌ์คํธ๋ก ๋ณํํฉ๋๋ค. (int[]๋ Integer[]๋ก ๋ณํ ํ์)
๐ ๋ฐฐ์ด์ ํน์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ํน์ ๊ฐ์ผ๋ก ์ฑ์๋๋ค.
๐ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์์ ๊ฐ์๋ฅผ ์ ๋๋ค.
๐ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋ํฉ๋๋ค.
๐ ๋ฐฐ์ด์์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ์ฐพ์ต๋๋ค.
๐ ๋ฐฐ์ด์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ก ๋ณํํฉ๋๋ค.
๐ ๊ฐ์ฒด ๋ฐฐ์ด
๐ ๋ฐฐ์ด์ ๊ณ ์ ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํฉ๋๋ค. Arrays.asList(array)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ๊ฐ ์์๊ฐ ๋ฆฌ์คํธ์ ๊ฐ๋ณ ์์๋ก ๋ณํ๋ฉ๋๋ค.
๐ ๋ฐฐ์ด์ ์์ ๊ฐ๋ฅํ List๋ก ์์ฑํด์ ๋ฐํํฉ๋๋ค.
Java์ ์ ๋ค๋ฆญ์ ๊ธฐ๋ณธํ(int, double, ๋ฑ)์ ์ง์ ๋ค๋ฃฐ ์ ์์ผ๋ฏ๋ก, List์ ๊ฐ์ด ๊ธฐ๋ณธํ ๋ฐฐ์ด์ ์ ๋ค๋ฆญ ํ์
์ผ๋ก ์ฌ์ฉํ๋ฉด ํ์
๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ธฐ๋ณธํ ๋ฐฐ์ด์ ๋ฆฌ์คํธ๋ก ๊ฐ๋ณ ์์๋ก ๋ณํํ๋ ค๋ฉด ๊ฐ int๋ฅผ Integer๋ก ๋ฐ์ฑํ ํ ์ด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ชจ์์ผํฉ๋๋ค.
๐ ๊ธฐ๋ณธํ ๋ฐฐ์ด
๐ Arrays.asList(array)๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ฐฐ์ด ์ ์ฒด๊ฐ ํ๋์ ์์๋ก ์ทจ๊ธ๋์ด [int[]] ํํ์ ๋ฆฌ์คํธ๊ฐ ๋ง๋ค์ด์ง๋๋ค.
๐ ๋ฐฐ์ด์ int - > Integer๋ก ๋ณํ ํ ๋ฆฌ์คํธ๋ก ์์ฑํฉ๋๋ค. .
๐ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ฒด ๋ฐฐ์ด๋ก ์์ฑํด์ ๋ฐํํฉ๋๋ค.
๐ ์คํธ๋ฆผ์ ์ด์ฉํด ๊ธฐ๋ณธํ ๋ฐฐ์ด๋ก ๋ณํํฉ๋๋ค.
๐ x๊ฐ ๋ช ๋ฒ์งธ ์ธ๋ฑ์ค์ ์๋์ง ๋ฐํํฉ๋๋ค. (์์ผ๋ฉด -1) ๋ด๋ถ์ ์ผ๋ก ์์ฐจ ๊ฒ์ โ O(n)
๐ ๋ฆฌ์คํธ์ ์์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. (true/false)
๐ ๋ฆฌ์คํธ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํฉ๋๋ค.
๐ ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํฉ๋๋ค.
๐ ์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ๋ํด, key๊ฐ ์์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ๋ฐํ, ์์ผ๋ฉด ์์ ๋ฐํ O(log n)
๐ ์ต๋๊ฐ, ์ต์๊ฐ O(n)
๐ ๋ฆฌ์คํธ์ ์์๋ฅผ ๋ค์ง์
๐ ๋ ์ธ๋ฑ์ค์ ์์ ๊ตํ
๐ ์กด์ฌํ๋ฉด true, ์์ผ๋ฉด false
๋งต์ key๊ฐ ์กด์ฌํ๋ฉด ๊ทธ ๊ฐ์, ์กด์ฌํ์ง ์์ผ๋ฉด defaultValue ๋ฐํ
ํด๋น key๊ฐ ์กด์ฌํ์ง ์์ ๋๋ง (๊ฐ์ด null์ด ์๋ ๋๋ง) (key, value)๋ฅผ ์ฝ์
๊ธฐ์กด ๊ฐ์ด 2์ผ ๋๋ง 3์ผ๋ก ๊ต์ฒด (replace(K key, V oldValue, V newValue) โ oldValue๊ฐ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ๊ต์ฒด)
๋ชจ๋ ํค๋ฅผ ์ํํด์ผ ํ ๋ keySet() ์ฌ์ฉ
๋ชจ๋ ๊ฐ์ ๋ํด์๋ง ์ฒ๋ฆฌํด์ผ ํ ๋ values()
(key, value) ์์ ๋์์ ๋ค๋ค์ผ ํ ๋ entrySet()
for (Map.Entry<String, Integer> e : map.entrySet()) {
System.out.println(e.getKey() + " -> " + e.getValue());
}
โข HashMap: ํ๊ท ์ ์ผ๋ก put, get, containsKey ๋ฑ ์ฃผ์ ์ฐ์ฐ์ด O(1)
โข TreeMap: ๋ด๋ถ์ ์ผ๋ก Red-Black Tree ๊ตฌ์กฐ, O(log n)
โข LinkedHashMap: ํ๊ท ์ ์ผ๋ก O(1), ์ฝ์
์์๋ฅผ ์ ์งํ์ง๋ง ํด์ ๊ตฌ์กฐ ์ฌ์ฉ
๐ ์ฃผ์ด์ง ์ซ์์ ์ ๋๊ฐ์ ๋ฐํํฉ๋๋ค. ex) Math.abs(-5); // โ 5
๐ ๋ ์ ์ค ํฐ ๊ฐ์ ๋ฐํํฉ๋๋ค.
๐ ๋ ์ ์ค ์์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
๐ a^b (a์ b์ ๊ณฑ)์ ๊ณ์ฐํฉ๋๋ค.
๐ ์ฃผ์ด์ง ์ซ์์ ์ ๊ณฑ๊ทผ์ ๋ฐํํฉ๋๋ค.
๐ ์ฃผ์ด์ง ์ซ์๋ฅผ ๋ด๋ฆผ ์ฒ๋ฆฌํฉ๋๋ค.
๐ ์ฃผ์ด์ง ์ซ์๋ฅผ ์ฌ๋ฆผ ์ฒ๋ฆฌํฉ๋๋ค.
๐ ์ฃผ์ด์ง ์ซ์๋ฅผ ๋ฐ์ฌ๋ฆผ ์ฒ๋ฆฌํฉ๋๋ค.
public static long factorial(int n) {
if (n == 0 || n == 1) return 1;
return n * factorial(n - 1);
}
factorial(5);
public static long factorial(int n) {
for(int i = 1; i <= n; i++) {
answer = answer * i;
}
return answer;
}
factorial(5);
public static int gcd(int a, int b) {
// 12 18
// 18 12
// 12 6
// 6 0
return b == 0 ? a : gcd(b, a % b);
}
gcd(12, 18); // 6
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
public static int lcm(int a, int b) {
return a * (b / gcd(a, b)); // ๋น๊ต ์ ์ค ์์์ * ์ต๋๊ณต์ฝ์ = ์ต์๊ณต๋ฐฐ์
}
lcm(12, 18); // 36
์์ด์ ๊ฐ์ = P(n,r) = n! / (n-r)!
โข ์ต์๊ฐ: -2,147,483,648 (์ฝ -2.1ร10^9)
โข ์ต๋๊ฐ: 2,147,483,647 (์ฝ 2.1ร10^9)
โข ์ต์๊ฐ: -9,223,372,036,854,775,808 (์ฝ -9.22ร10^18)
โข ์ต๋๊ฐ: 9,223,372,036,854,775,807 (์ฝ 9.22ร10^18)
โข 2^30 = 1,073,741,824 โ int ๋ฒ์ ๋ด
โข 2^31 = 2,147,483,648 โ int ๋ฒ์ ์ด๊ณผ
โข 10^9 = 1,000,000,000 int ๋ฒ์ ๋ด
โข 10^10 = 10,000,000,000 โ int ๋ฒ์ ์ด๊ณผ
โข 2^63 โ 9.22ร10^18 (๊ฒฝ๊ณ์ )
โข 10^18 = 1,000,000,000,000,000,000 โ long ๋ฒ์ ๋ด
โข 10^19 = 10,000,000,000,000,000,000 โ long ๋ฒ์ ์ด๊ณผ
โข 12! = 479,001,600 (์ฝ 4.79ร10^8) โ int ๋ฒ์ ๋ด
โข 13! = 6,227,020,800 (์ฝ 6.23ร10^9) โ int ๋ฒ์ ์ด๊ณผ
โข 20! = 2,432,902,008,176,640,000 (์ฝ 2.43ร10^18) โ long ๋ฒ์ ๋ด
โข 21! = 51,090,942,171,709,440,000 (์ฝ 5.10ร10^19) โ long ๋ฒ์ ์ด๊ณผ