reverse(answer.begin(), answer.end());
๐ answer๋ผ๋ vector๋ฅผ ๋ค์ง๋๋ค
sqrt()
๐์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ ํจ์
max_element(), min_element()
arr.erase(min_element(arr.begin(), arr.end()));
๐์ต๊ณ ๊ฐ, ์ต์๊ฐ์ ์ฐพ๋ ํจ์
๐line 2 : ์ ์ผ ์์ ์ ์ ๊ฑฐ
์๊ณ ๋ฆฌ์ฆ์ ํ๋ฉด์ ํท๊ฐ๋ ธ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
์ด ํ๋ฅผ ๋ณด๋ฉด์ ์์๋ณด์
vector<char>vec;
if (vec[i] >= 65 && vec[i] <= 90) // ๋๋ฌธ์ ๋ฌผ๋ก 65 -> 'A' ๊ฐ๋ฅ
else if (vec[i] >= 97 && vec[i] <= 122) // ์๋ฌธ์
else if (vec[i] >= 48 && vec[i] <= 57) // ์ซ์
๐๋๋ฌธ์๋ ์๋ฌธ์๋ณด๋ค ์์คํค์ฝ๋ ๊ฐ์ด ๋ฎ๋ค.
answer += (s[i] - 48) // char to int
์ฆ answer += (s[i] - '0')์ ๊ฐ์ ๋ป
๐์ด๋ ๊ฒ string ๋ณ์์ index๋ก ์ ๊ทผํ๋ฉด์ -48์ ํด์ฃผ๋ฉด
int๋ก ํ ๋ณํ๊ณผ ๋์์ intํ ๋ณ์์ ์ ์ฅ์ ํ ์ ์๋ค.
if (s[i] - '0' >= 0 && s[i] - '0' <= 9)
๐์ด if๋ฌธ์ s๋ผ๋ string ๋ณ์์ ์ซ์๊ฐ ์๋ ํ๋ณํ๋ ๊ฒ์ด๋ค.
-'0'์ ํด์ค ํ ๊ทธ ๊ฐ์ด 0 ~ 9 ์ฌ์ด๋ผ๋ฉด ์ซ์์ด๋ค.
if (isupper(vec[i])) // ๋๋ฌธ์ ํ๋ณ isupper
else if (islower(vec[i])) // ์๋ฌธ์ ํ๋ณ islower
๐๋๋ฌธ์, ์๋ฌธ์ ํ๋ณํ๋ ํจ์์ด๋ค. ์ ์ฉํ ์ฐ์ผ ๊ฒ ๊ฐ๋ค.
char ctmp2 = 1 + '1';
cout << ctmp2 << '\n'; //2
char ctmp2 = 1 + '8';
cout << ctmp2 << '\n'; //9
int itmp = 1 + '0';
cout << itmp << '\n'; //49
๐ int, char~
int n; cin >> n;
string str = "";
str += ('A' - 'A' + n) % 26 + 'A'; //์ํ๋ฒณ ๊ฐฏ์ 26
๐ ๋ฌธ์์ด์ n๋งํผ ์ฆ๊ฐ ex) n=3 A->D
vec.assign({ cnt1, cnt2, cnt3 });
๐ vector์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ํ ๋ฒ์ ๋ฃ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
DI ์ฌ๊ธฐ์ ์ ๋ฆฌ
Collection ์ฌ๊ธฐ์ ์ ๋ฆฌ
spring ์ฌ๊ธฐ ์ด์ธ์๋ ๋ช ๊ฐ ์ ๋ฆฌ
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object-Oriented Programming, OOP) ์
ํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์ํจ ํ ์ํ์ ํ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๊ฐ์ฒด๋ค ๊ฐ ์ํธ์์ฉ์ ํตํด ๋ก์ง์ ๊ตฌ์ฑํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ด๋ค.
ํด๋์ค
, ๊ฐ์ฒด
, ์ธ์คํด์ค
๋ ๊ฐ๋จํ๊ฒ ์์๋ณด์!
ํด๋์ค - ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ์ค๊ณ๋.
๊ฐ์ฒด - ํด๋์ค์ ์ ์ธ๋ ๋ชจ์ ๊ทธ๋๋ก ์์ฑ๋ ์ค์ฒด, ๊ตฌํํ ๋์.
์ธ์คํด์ค - ํด๋์ค๋ฅผ ํตํด์ ๊ตฌํํด์ผํ ๋์(๊ฐ์ฒด)์ด ์ค์ ๋ก ๊ตฌํ๋ ๊ตฌ์ฒด์ ์ธ ์ค์ฒด
- ์ฅ์
- ์์์ ํตํด ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์์ ํ๋๋ผ๋ ์บก์ํ๋ฅผ ํตํด ์ฃผ๋ณ ์ํฅ์ด ์ ๊ธฐ ๋๋ฌธ์ ์ ์ง๋ณด์๊ฐ ์ฝ๋ค.
- ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฅ์์ํจ๋ค.
- ๋จ์
- ๋ณต์กํด์ง์๋ก ์ฝ๋ ๋์ด๋๊ฐ ์ฌ๋ผ๊ฐ๋ค.
- ์ค๊ณ๋จ๊ณ๋ถํฐ ๋ง์ ์๊ฐ์ ํฌ์ํด์ผํ๋ค.
- ์คํ์๋๊ฐ ๋๋ฆฌ๋ค.
์์(Inheritance) - ๋ถ๋ชจํด๋์ค์ ์์ฑ๊ณผ ๊ธฐ๋ฅ์ ์ด์ด๋ฐ์ ์ฌ์ฉํ ์ ์๊ฒํ๋ ๊ฒ์ด๋ค.
์ถ์ํ(abstraction) - ๊ฐ์ฒด์ ๊ณตํต์ ์ธ ์์ฑ๊ณผ ๊ธฐ๋ฅ์ ์ถ์ถํ์ฌ ์ ์ํ๋๊ฒ์ ๋งํ๋ค.
๋คํ์ฑ(Polymorphism) - ํ๋์ ๊ฐ์ฒด๊ฐ ์ํฉ์ ๋ฐ๋ผ ์ฌ๊ตฌ์ฑ ๋๋ ๊ฒ์ด๋ค.
์บก์ํ(Encapsulation) - ๋ฐ์ดํฐ์ ์ฝ๋์ ํํ๋ฅผ ์ธ๋ถ๋ก๋ถํฐ ์ ์์๊ฒ ํ๊ณ , ๋ฐ์ดํฐ์ ๊ตฌ์กฐ์ ์ญํ , ๊ธฐ๋ฅ์ ํ๋์ ์บก์ํํ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
์๋ฐ ๊ฐ์ ๋จธ์ ์ด๋ค.
์๋ฐ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ , ํ๋์จ์ด์ ์๊ด์์ด ์คํํ ์ ์๊ฒ ํด์ฃผ๊ณ , ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ต์ ํํด์ค๋ค.
์ถ์ฒ - https://asfirstalways.tistory.com/158
Class Loader
, Execution Engine
, Runtime Data Area
๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
Class Loader
- ํด๋์ค๋ฅผ ๋ก๋ํ๊ณ , ํด๋์ค์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ , ํด๋์ค์์ ์ ์๋ ํ๋, ๋ฉ์๋, ์ธํฐํ์ด์ค๋ค์ ๋ํ๋ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ค๋นํ๋ค.
Execution Engine
- ํด๋์ค๋ฅผ ์คํ์ํค๋ ์ญํ ์ ํ๋ค. ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ ํด์ ํ๋ค.
Runtime Data Area
- JVM์ด OS์์ ์คํ๋๋ฉด์ ํ ๋น๋ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์
๋๋ค.
์ด ์ค PC Register, JVM Stack, Native Method Stack์ ์ค๋ ๋(Thread)๋ง๋ค ํ๋์ฉ ์์ฑ๋๊ณ ,
Heap, Method Area์ ๋ชจ๋ ์ค๋ ๋๊ฐ ๊ณต์ ํด์ ์ฌ์ฉ๋๋ค.
๋ฐ์ด๋ฐ์ด...