๐ ํ์ด
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Long n = Long.parseLong(br.readLine());
bw.write(n*n + "\n" + 2);
br.close();
bw.flush();
bw.close();
}
}
โ ํ์ด ๊ณผ์
๋จผ์ ๋ฌธ์ ์์ ์ฃผ์ด์ง ์์ฌ์ฝ๋๋ฅผ ์๋ฐ ์ฝ๋๋ก ๋ณ๊ฒฝํ์๋ค.
MenOfPassion(A[]) {
int sum = 0;
int n = A.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
sum += A[i] * A[j];
}
}
return sum;
}
์๊ธฐ ์ฝ๊ฒ ์๋ฐ์ฝ๋๋ก ๋ณํํ์๊ณ ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ด A์ ๋ชจ๋ ์์ ๊ณฑ์ผ๋ก ํฉ์ฐํ์ฌ ๋ฐํํ๋ ์๊ณ ๋ฆฌ์ฆ์ธ๊ฒ์ ํ์ธํ ์ ์์๋ค.
์๊ฐ๋ณต์ก๋ ๋ถ์
- int sum :
- ์ด ์ฝ๋๋ ๋์ ์ฐ์ฐ์ผ๋ก ์์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก $O(1)$ ์ผ๋ก ํํํ๋ค.
- int n = A.length :
- ์ด ๋์ ์ฐ์ฐ๋ ์์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก $O(1)$๋ก ํํ๋๋ค.
- for (int i = 0; i < n; i++) :
- ์ด ๋ฐ๋ณต๋ฌธ์ `i`๊ฐ 0๋ถํฐ ์์ํ์ฌ `n` ๋ณด๋ค ์์๋ ๊น์ง ๋ฐ๋ณตํ๋ค. ๋ฐ๋ผ์ ์ด ๋ฐ๋ณต๋ฌธ์ ์ด `n`๋ฒ ์คํ๋๋ค.
- ์ฆ, ์ ํ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก $O(n)$ ์ผ๋ก ํํํ ์ ์๋ค.
- for (int j = 0; j < n; j++)
- ์ด ๋ฐ๋ณต๋ฌธ๋ ๋ง์ฐฌ๊ฐ์ง๋ก `j`๊ฐ 0๋ถํฐ ์์ํ์ฌ `n`๋ณด๋ค ์์๋ ๊น์ง ๋ฐ๋ณตํ๋ ์ฝ๋์ด๋ค.
- ๋ฐ๋ผ์ ์ด `n`๋ฒ ์คํ๋๋ฉฐ ์คํ ํ์๋ `n`์ ํฌ๊ธฐ๋งํผ ๋น๋กํ๊ฒ ๋๋ค.
์์ ํํ
๊ฐ ์ฐ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ํฉ์ฐํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
$$ T(n)=O(1)+O(1)+O(n2)$$
์ผ๋ก ํํํ ์ ์๋ค.
๋น ์ค ํ๊ธฐ๋ฒ์ ์์ ํญ๊ณผ ๋ฎ์ ์ฐจ์์ ํญ์ ๋ฌด์ํ๊ณ ๊ฐ์ฅ ํฐ ์ฐจ์์ ํญ๋ง ๊ณ ๋ คํ๋ค. ๋ฐ๋ผ์ $O(n^2)$ ์ด ๋จ๋๋ค. ์ฆ ์ด์ฝ๋์ ์๊ฐ๋ณต์ก๋๋ $O(n^2)$์ด๋ค.