๐Ÿ“ Coding Test Study/Algorithm Problem

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ

ibelieveinme 2021. 4. 23. 00:19
728x90

[๋ฌธ์ œ ์„ค๋ช…]

 

๋‹ค์Œ ๊ทœ์น™์„ ์ง€ํ‚ค๋Š” ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • (), [], {} ๋Š” ๋ชจ๋‘ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ A๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, (A), [A], {A} ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, [] ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ, ([]) ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ A, B๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, AB ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, {} ์™€ ([]) ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ, {}([]) ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

๋Œ€๊ด„ํ˜ธ, ์ค‘๊ด„ํ˜ธ, ๊ทธ๋ฆฌ๊ณ  ์†Œ๊ด„ํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ด s๋ฅผ ์™ผ์ชฝ์œผ๋กœ x (0 ≤ x < (s์˜ ๊ธธ์ด)) ์นธ๋งŒํผ ํšŒ์ „์‹œ์ผฐ์„ ๋•Œ s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ๋˜๊ฒŒ ํ•˜๋Š” x์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

[์ œํ•œ์‚ฌํ•ญ]

s์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

[์ž…์ถœ๋ ฅ ์˜ˆ]

s result
"[](){}" 3
"}]()[{" 2
"[)(]" 0
"}}}" 0

 

[์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…]

๋”๋ณด๊ธฐ

์ž…์ถœ๋ ฅ ์˜ˆ #1

๋‹ค์Œ ํ‘œ๋Š” "[](){}" ๋ฅผ ํšŒ์ „์‹œํ‚จ ๋ชจ์Šต์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

x s๋ฅผ ์™ผ์ชฝ์œผ๋กœ x์นธ๋งŒํผ ํšŒ์ „ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด?
0 "[](){}" O
1 "](){}[" X
2 "(){}[]" O
3 "){}[](" X
4 "{}[]()" O
5 "}[](){" X

=> ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ๋˜๋Š” x๊ฐ€ 3๊ฐœ์ด๋ฏ€๋กœ, 3์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #2

๋‹ค์Œ ํ‘œ๋Š” "}]()[{" ๋ฅผ ํšŒ์ „์‹œํ‚จ ๋ชจ์Šต์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

x s๋ฅผ ์™ผ์ชฝ์œผ๋กœ x์นธ๋งŒํผ ํšŒ์ „ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด?
0 "}]()[{" X
1 "]()[{}" X
2 "()[{}]" O
3 ")[{}](" X
4 "[{}]()" O
5 "{}]()[" X

=> ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ๋˜๋Š” x๊ฐ€ 2๊ฐœ์ด๋ฏ€๋กœ, 2๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #3

s๋ฅผ ์–ด๋–ป๊ฒŒ ํšŒ์ „ํ•˜๋”๋ผ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, 0์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #4

s๋ฅผ ์–ด๋–ป๊ฒŒ ํšŒ์ „ํ•˜๋”๋ผ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, 0์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

[๋ฌธ์ œํ’€์ด]

์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ธ์ง€ ์•„๋‹Œ์ง€๋งŒ ํƒ์ƒ‰ํ•˜๋ฉด ๋˜๋ฏ€๋กœ, ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ฆ‰, ๋‹ค์Œ 3๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

โ‘  (}) ์ด๋ ‡๊ฒŒ ๊ด„ํ˜ธ ์ค‘๊ฐ„์— ์ž˜๋ชป๋œ ๋‹ซํžŒ ๊ด„ํ˜ธ๊ฐ€ ๋“ค์–ด์˜จ ๊ฒฝ์šฐ

โ‘ก ), }, ] ๋“ฑ ๋‹ซํžŒ ๊ด„ํ˜ธ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ

โ‘ข ๊ด„ํ˜ธ๊ฐ€ ํ™€์ˆ˜๊ฐœ ์ž…๋ ฅ๋˜์–ด ๊ด„ํ˜ธ ์Œ์ด ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

 

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์ƒ๊ฐํ•œ ๊ฒƒ๋“ค... ์ƒ๊ฐ์˜ ํ๋ฆ„ ์ฒจ๋ถ€

๋”๋ณด๊ธฐ

1. ๋ฌธ์ž์—ด s๋Š” ์–ด๋–ค ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฐ›์ง€? string? char?
ํ•œ๊ธ€์ž์”ฉ ์ €์žฅํ•ด์•ผํ•˜๋‹ˆ๊น char์ด ๋‚˜์„ ๊ฑฐ ๊ฐ™๋‹ค.
๊ทผ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ๋‚˜์™€์žˆ๋Š” ๊ธฐ๋ณธํ‹€์€ string์ด๋ผ๋„ค ํ—ˆํ—ˆ

 

2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋Œ€๋žต์ ์ธ ํ‹€์€?
1) ๋ฌธ์ž๊ธธ์ด๋งŒํผ ์™ผ์ชฝ์œผ๋กœ ํ•œ์นธ์”ฉ ํšŒ์ „
2) ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์ฒดํฌ
3) ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด count๊ฐ’ 1์”ฉ ๋Š˜๋ ค์ฃผ๊ธฐ
4) ๋งˆ์ง€๋ง‰์— count๊ฐ’ ์ถœ๋ ฅ

3. ํƒ์ƒ‰์‹œ ๋น ์ ธ๋‚˜์˜ฌ ์กฐ๊ฑด?
๊ฑฐ์ง“์ด ๋  ๊ฒฝ์šฐ์˜ ์ˆ˜

โ‘  ), }, ]๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ
โ‘ก (, {, [๋กœ ๋๋‚˜๋Š” ๊ฒฝ์šฐ
โ‘ข ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด(=๊ฐœ์ˆ˜)๊ฐ€ ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ

4. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์ฒดํฌํ•˜์ง€?
๋ฌธ์ œ ํžŒํŠธ์—์„œ A๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฉด (A) or [A] or {A} ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋„ค?
์˜ˆ๋ฅผ ๋“ค์–ด, []๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ([]) ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ธ๊ฑฐ...
๊ทผ๋ฐ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”์ง€๋ฅผ ๋ชจ๋ฅด๊ฒŸ๋‹ค.
๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ (, {, [ ๋ฅผ ๋งŒ๋‚  ๋•Œ๋งˆ๋‹ค stack์— ๋„ฃ์–ด์ฃผ๊ณ 
), }, ] ๋ฅผ ๋งŒ๋‚  ๋•Œ ๋งˆ๋‹ค ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋„ฃ์€(์ตœ์‹ ) ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋งž๋Š”์ง€ ๋น„๊ตํ•œ๋‹ค.
์™œ๋ƒํ•˜๋ฉด ์•ˆ์— ๊ด„ํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ฌ์•ผ ๋ฐ”๊นฅ ๊ด„ํ˜ธ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ฆ‰, ์˜ˆ๋ฅผ๋“ค์–ด (}) ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ •์ƒ์ ์ธ ๊ด„ํ˜ธ๊ฐ€ ์•„๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ ํšŒ์ „์€ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•ด์•ผ ํ• ๊นŒ?
๋งจ ์•ž์—๊ป„ ๋นผ์„œ ๋’ค๋กœ ๋„ฃ๋Š” ๊ตฌ์กฐ๋‹ˆ๊นŒ queue๋ฅผ ์ด์šฉํ•ด์•ผ๊ฒ ๋‹ค! -> ๋ฌธ์ œ์—์„  string์„ ์‚ฌ์šฉํ–ˆ์œผ๋‹ˆ string์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž๋ฅผ ํšŒ์ „ํ•˜๋Š” ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.


๊ตฌํ˜„ 1์ฐจ ์‹œ๋„...

 

๋‹ซํžŒ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ (), {}, [] ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ™๋‹ค๊ณ  ํ‘œํ˜„ํ• ์ง€๊ฐ€ ๋ง‰ํž˜..

 

๊ตฌํ˜„ 2์ฐจ ์‹œ๋„

switch ๋ฌธ์„ ์ด์šฉํ•ด์„œ ์—ด๋ฆฐ๊ด„ํ˜ธ๋ฅผ ์ €์žฅํ•œ ์Šคํƒ์˜ top๊ณผ ํ˜„์žฌ ํƒ์ƒ‰ํ•˜๋Š” ๊ด„ํ˜ธ index๋ฅผ ๋น„๊ตํ•˜๋‹ˆ๊น ๊ฐ€๋Šฅํ–ˆ๋‹ค.

#include <iostream>
#include <string>
#include <stack>
using namespace std;

int findCorrectBracket(string);	//์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์ฒดํฌํ•˜๋Š” ํ•จ์ˆ˜
string rotateString(string);	//๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ํšŒ์ „ํ•˜๋Š” ํ•จ์ˆ˜

int main() {
	string bracketString;
	int correctNum = 0;

	cin >> bracketString;
	for (int idx = 0; idx < bracketString.length(); idx++) {
		correctNum += findCorrectBracket(bracketString);
		bracketString = rotateString(bracketString);
	}
	cout << correctNum;
}

string rotateString(string bracketString) {
	string firstString = bracketString.substr(0, 1);
	string subString = bracketString.substr(1, bracketString.length() - 1);
	return subString + firstString;
}

int findCorrectBracket(string bracketString) {
	int correctBracketNum = 0;
	stack<char> s_openBracket;

	for (int idx = 0; idx < bracketString.length(); idx++) {
		char closedBracket;
		char currentBracket = bracketString[idx];
		//์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฌธ์œผ๋กœ ์ ์–ด์ฃผ๊ณ 
		//๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋ผ๊ณ  ์ฒ˜๋ฆฌํ•ด์ฃผ์ž.

		//์—ด๋ฆฐ๊ด„ํ˜ธ
		if (currentBracket == '(' || currentBracket == '{' || currentBracket == '[') {
			s_openBracket.push(currentBracket);
		}
		//๋‹ซํžŒ๊ด„ํ˜ธ
		else {
			if (s_openBracket.empty()) { //๋ฐ”๋กœ ),},] ๊ฐ™์€ ๋‹ซํžŒ๊ด„ํ˜ธ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๊ทธ๊ฑด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ์•„๋‹˜
				return 0;
			}

			switch (currentBracket) {	// (,{,[ ์—ด๋ฆฐ ๊ด„ํ˜ธ๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋ฉด ๊ทธ ๋‹ค์Œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋”ฐ์ ธ๋ณด์ž.
			case ')':
				if (s_openBracket.top() != '(') { //์ง์ „ ๊ด„ํ˜ธ๊ฐ€ (์ด๋ฉด ์ด๋ฒˆ ๊ด„ํ˜ธ๋Š” )์—ฌ์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฒ ์ง€
					return 0;
				}
				break;
			case '}':
				if (s_openBracket.top() != '{') { //์ง์ „ ๊ด„ํ˜ธ๊ฐ€ {์ด๋ฉด ์ด๋ฒˆ ๊ด„ํ˜ธ๋Š” }์—ฌ์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฒ ์ง€
					return 0;
				}
				break;
			case ']':
				if (s_openBracket.top() != '[') {	//์ง์ „ ๊ด„ํ˜ธ๊ฐ€ [์ด๋ฉด ์ด๋ฒˆ ๊ด„ํ˜ธ๋Š” ]์—ฌ์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฒ ์ง€
					return 0;
				}
				break;
			default:
				break;
			}
			s_openBracket.pop();	//์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด top() ํฌ์ธํ„ฐ๋ฅผ ํ•œ์นธ ์˜ฎ๊ฒจ์„œ ๋‹ค์Œ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์ฒดํฌํ•ด๋ณด์ž.
		}
	}
	if (s_openBracket.empty()) return 1;	//๋งˆ์ง€๋ง‰๊นŒ์ง€ ๋‚จ๊น€์—†์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋กœ ํŒ๋‹จ์ด ๋˜์—ˆ์„ ๋•Œ 1์„ return.
	else return 0;	// โ˜… ๋งˆ์ง€๋ง‰์— { ํ•˜๋‚˜๋งŒ ๋‚จ์•˜๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฐ€ ์•„๋‹ˆ๋‹ˆ๊น ์ด๋Ÿฐ ๊ฒฝ์šฐ๋„ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์ฃผ๊ธฐ.
}

๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์„ ์• ์ดˆ์— ()๋Š” 1, {}๋Š” 2, []๋Š” 3์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ด์„œ ์ˆซ์ž๊ฐ€ ๊ฐ™์€์ง€๋ฅผ ๋น„๊ตํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค.

์ฝ”๋“œ๊ฐ€ ์ข€๋” ๊ฐ„๋‹จํ•ด์งˆ ๊ฑฐ ๊ฐ™๊ธด ํ•˜๋‹ค~!

์ฐธ๊ณ ๋กœ 12๋ฒˆ Testcase์—์„œ ์‹คํŒจ๊ฐ€ ๋–ด์—ˆ๋Š”๋ฐ, {, (, [ ๊ฐ™์€ ์—ด๋ฆฐ ๊ด„ํ˜ธ๊ฐ€ ๋งˆ์ง€๋ง‰์— ์˜ฌ ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

 

์‹œ๊ฐ„๋ณต์žก๋„

๊ด„ํ˜ธ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ์•ˆ์—์„œ ์™ผ์ชฝ์œผ๋กœ ํ•œ์นธ์”ฉ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ O(N)

ํ˜„์žฌ ํšŒ์ „ ๊ฒฐ๊ณผ ์—์„œ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋งŒํผ ์ฐจ๊ณก์ฐจ๊ณก ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ฅผ stack์— ์ €์žฅํ•˜๊ณ  ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ O(N) ์œผ๋กœ

์ด O(N²)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.

728x90