์ด์ง ํ์์ด ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ์ ์ฐจ
๊ณ์ฐ ์๊ฐ์ด ์ ๋ ฌํ ์๋ฃ ์์ ์ ๊ณฑ์ ๋น๋กํ์ฌ ์ฆ๊ฐ
1๋ง ๊ฐ๋ฅผ 1์ด์ ์ ๋ ฌํ๋ฉด 10๋ง ๊ฐ๋ฅผ ์ ๋ ฌํ๋ ๋ฐ์๋ 100์ด ์ ๋๊ฐ ํ์
-
- ์ธ์ ํ ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํด๊ฐ๋ฉด์ ์ ๋ ฌ์ ์งํํ๋ ๋ฐฉ์
- ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐฐ์ด์ ๋งจ ๋์๋ค ์ด๋์ํค๋ฉด์ ์ ๋ ฌํ๊ณ ์ ํ๋ ์์์ ๊ฐ์ ๋งํผ ๋ ๋ฒ ๋ฐ๋ณตํ๋ค.
-
- ๋ฐ์ดํฐ๋ฅผ ๊ณ์ํด์ ๋ฐ๊พธ๋ ๊ฒ์ด ์๋๋ผ ๋น๊ตํ๊ณ ์๋ ๊ฐ์ index ๋ฅผ ์ ์ฅํ๋ค.
- ์ต์ข ์ ์ผ๋ก ์ ์ฅ๋ ์ธ๋ฑ์ค๋ฅผ ํ ๋ฒ๋ง ๋ฐ๊ฟ์ค๋ค.
-
- k๋ฒ์งธ ์์๋ฅผ 1๋ถํฐ k-1๊น์ง์ ๋น๊ตํด ์ ์ ํ ์์น์ ๋ผ์๋ฃ๊ณ ๊ทธ ๋ค์ ์๋ฃ๋ฅผ ํ ์นธ์ฉ ๋ค๋ก ๋ฐ์ด๋ด๋ ๋ฐฉ์
์ ๋ ฅ๊ฐ n ์ด ์ฃผ์ด์ก์ ๋, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ํ์ํ ๋จ๊ณ๋ค์ด ์ฐ์ฐ์ ํน์ ์์ธ์ ์ํด ๊ฐ์
-
- ์ ๋ ฌํ๊ณ ์ ํ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์์ ๋จ์๋ก ๋๋์ด ์ ๋ ฌํ๊ณ ์ ํ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์๋ฆฌ
-
ํ ์ ๋ ฌ : ๋ ๊ฐ์ง ๋ฐฉ์์ด ์กด์ฌ
- ์ ๋ ฌ์ ๋์์ธ ๋ฐ์ดํฐ๋ค์ ํ์ ๋ฃ์๋ค๊ฐ ๊บผ๋ด๋ ์๋ฆฌ
- ๊ธฐ์กด์ ๋ฐฐ์ด์ heapify(heap ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ )์ ๊ฑฐ์ณ ๊บผ๋ด๋ ์๋ฆฌ
-
- ์ ์ ํ ์์ ํ๋๋ฅผ ๊ธฐ์ค(ํผ๋ฒ, pivot)์ผ๋ก ์ผ์ ๊ทธ๋ณด๋ค ์์ ๊ฒ์ ์์ผ๋ก ๋นผ๋ด๊ณ ๊ทธ ๋ค์ ํผ๋ฒ์ ์ฎ๊ฒจ ํผ๋ฒ๋ณด๋ค ์์ ๊ฒ, ํฐ ๊ฒ์ผ๋ก ๋๋๋ค ๋๋์ด์ง ๊ฐ๊ฐ์์ ๋ค์ ํผ๋ฒ์ ์ก๊ณ ์ ๋ ฌํด์ ๊ฐ๊ฐ์ ํฌ๊ธฐ๊ฐ 0์ด๋ 1์ด ๋ ๋๊น์ง ์ ๋ ฌ
-
1๋ฒ - ์ ๋ ฌ ๊ธฐ์ด
- "์ต๋๊ฐ๊ณผ ์ต์๊ฐ ๊ตฌํ๊ธฐ"
// ์ฃผ์ด์ง๋ ๊ฐ int[] n = {8,1,45,21,22,37,6,8,2,79}; void solution1(int[] n){ int maxNum = 0 int minNum = 0; // ์ฝ๋ ์์ฑ System.out.println("์ต๋๊ฐ์ : " + maxNum); System.out.println("์ต์๊ฐ์ : " + minNum); }
-
2๋ฒ - ๋ฐฐ์ด ๊ธฐ์ด
- "1+2+4+7+11+16+...+i ์ ์์๋ก ๋์ด๋ ์์ด์ i๋ฒ์งธ ํญ๊น์ง์ ํฉ ๊ตฌํ๊ธฐ"
// ์ฃผ์ด์ง๋ ๊ฐ int i = 10; // 10๋ฒ์งธ ํญ๊น์ง์ ํฉ void solution2(int i){ int sumValue = 0; // ์ฝ๋ ์์ฑ System.out.println(i + "๋ฒ์งธ ํญ๊น์ง์ ํฉ : " + sumValue); }
-
3๋ฒ - ๋ฐฐ์ด ๊ธฐ์ด
- "1-2+3-4+5-6+...+99-100์ ํฉ ๊ตฌํ๊ธฐ"
// ์ฃผ์ด์ง๋ ๊ฐ ์์ void solution3(){ int sumValue = 0; // ์ฝ๋ ์์ฑ System.out.println("์ดํฉ : " + sumValue); }
-
4๋ฒ - ์ ๋ ฌ ๊ธฐ์ด
- "int ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค."
// ์ฃผ์ด์ง๋ ๊ฐ int[] n = {8,1,45,21,22,37,6,8,2,79}; void solution4(int[] n){ int[] answer = {}; // ์ฝ๋ ์์ฑ for(int answers : answer) System.out.print(answers + ", "); }
-
- "์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง N๊ฐ์ ๋จ์ด๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค." * > ๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ * > ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก
// ์ค์บ๋ ์ฌ์ฉ์ void solution5(){ Scanner sc = new Scanner(System.in); int count = Integer.parseInt(sc.nextLine().trim()); // ์ฝ๋ ์์ฑ } // ๋ฒํผ๋๋ฆฌ๋ ์ฌ์ฉ์ void solution5(){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // ์ฝ๋ ์์ฑ }
-
6๋ฒ - ์ ๋ ฌ ๊ธฐ์ด
- "์๊ฐ ์ฃผ์ด์ง๋ฉด, ๊ทธ ์์ ๊ฐ ์๋ฆฌ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์์ค."
// ์ฃผ์ด์ง๋ ๊ฐ int n = 153248976 void solution6(int n){ String answer = ""; // ์ฝ๋ ์์ฑ System.out.println("์ ๋ ฌ๋ ์ : " + answer); }
-
- "0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ง ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ถ๋ ฅํ์์ค." * > ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ด๋ค. * > 0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์์ค.
// ์ฃผ์ด์ง๋ ๊ฐ int[] n = {3, 30, 34, 5, 9}; String solution7(int[] n){ String answer = ""; // ์ฝ๋ ์์ฑ System.out.println("์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ ๊ฐ์ฅ ํฐ ์๋ : " + answer); return answer; }