Code Monkey home page Code Monkey logo

emsys-algorithtmstudy's Introduction

๐Ÿ“– M6-BaekjoonStudy

์ถฉ๋ถ๋Œ€ํ•™๊ต ์†Œํ”„ํŠธ์›จ์–ดํ•™๊ณผ ์— ์‹œ์Šค ๋™์•„๋ฆฌ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””์ž…๋‹ˆ๋‹ค.



๐Ÿ“† Since 2023-03-05

๐Ÿ‘ซ Member Info



๐Ÿ“‹ ๊ธฐ๋ก ๋ฐฉ๋ฒ•

  • ๊ฐ์ž ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋” ๋‚ด์— ๋งค์ฃผ ํ’€๊ธฐ๋กœํ•œ ๋ฌธ์ œ๋“ค์˜ ํ’€์ด์ฝ”๋“œ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์ž ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๋“ค์€ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ด์Šˆ์— ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.



๐Ÿ”Ž ๋ฌธ์ œ ์„ ์ • ๋ฐฉ์‹

  • ๊ฐ์ž ์ž์‹ ์ด ๊ด€์‹ฌ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜น์€ ํ’€๊ณ ์‹ถ์€ ๋ฌธ์ œ 2๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์€ ์ด์Šˆ์— ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.
  • ์ด์Šˆ์—์„œ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๋“ค์€ ๋Œ€๋ฉด์œผ๋กœ ๋งŒ๋‚˜์„œ ํ† ๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™์ง„์„ -> ์ตœ์›์‹ -> ํ™์€์„ฑ -> ํ™ฉ์žฌ์ฐฌ -> ๊ณฝ๋ฏผ์ • -> ๊น€๊ธฐ๋ฐฑ ์ˆœ์„œ๋กœ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.



โ“ ์ด์Šˆ ํ™œ์šฉ ์‚ฌ์•ˆ

  • Emsys ์ด์™ธ ๊ฐœ์ธ์ด ํ’€๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ๋„ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์˜ฌ๋ ค๋„ ๋ฉ๋‹ˆ๋‹ค!!



๐Ÿซ ๋Œ€๋ฉด ํ™œ๋™

  • ๋งค์ฃผ ์›”์š”์ผ 7์‹œ ์— ์‹œ์Šค ๋™์•„๋ฆฌ๋ฐฉ

emsys-algorithtmstudy's People

Contributors

hhjade21 avatar hong-jinsuk avatar empchan avatar king258436 avatar zistered avatar dotoooo22 avatar

Stargazers

 avatar Cheon Jiyeon avatar  avatar seoyounghan avatar

Watchers

 avatar

Forkers

secleezy

emsys-algorithtmstudy's Issues

๋Ÿฐํƒ€์ž„์—๋Ÿฌ๋ฐœ์ƒ ์ด์œ ์—๋Œ€ํ•ด

์ด๊ฑฐ ์™œ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋‚ ๊นŒ์š”? DoubleFree๋ผ๊ณ ๋‚˜์˜ค๋Š”๋ฐ ์ด๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋ผ๊ณ  ํ•˜๋”๋ผ๊ตฌ์š”.. ์ง„์งœ๋ชจ๋ฅด๊ฒ ๋„ค์š”

#include <iostream>
#include <vector>
#include <queue>

using namespace std;
using dat = pair<int, int>;

vector<int>alpha[32];
priority_queue<dat, vector<dat>, greater<dat>>pq;
bool visit[4000];

int sol(string a, string b) {
	int max_length = 0;
	for (int i = 0; i < b.length(); i++) alpha[b[i] - 'A'].push_back(i);

	for (int i = 0; i < a.length()-max_length; i++) {
		while (!pq.empty() && pq.top().first <= i) {
			int t = pq.top().second;
			while (t >= 0 && visit[t])visit[t--] = 0;
			pq.pop();
		}
		for (auto j : alpha[a[i] - 'A']) {
			if (visit[j])continue;
			int t = 1,lim = min(a.length()-i,b.length() - j);
			while (t < lim && a[i + t] == b[j + t])t++;
			for (int p = i + 1; p <= i + t; p++) visit[p] = 1;
			max_length = max(t,max_length);
			pq.push(make_pair(i+t, j + t));
		}
	}
	return max_length;
}

int main() {
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	
	string a, b;
	
	cin >> a >> b;
	if (a.length() > b.length()) {
		cout << sol(b, a);
	}
	else {
		cout << sol(a, b);
	}

	return 0;
}

BaekJoon_5639, ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ - OutOfBounds

#include<iostream>
#define endl "\n"
#include<vector>
using namespace std;

struct node {
	int right;
	int left;
};

int num, root, l, r;
vector<node> Tree(10009); // ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ฆ

void postOrder(int cur) { // ํ›„์œ„์„ ํšŒ ์ฝ”๋“œ
	if (Tree[cur].left) postOrder(Tree[cur].left); // left์— ๋…ธ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด left๋กœ
	if (Tree[cur].right) postOrder(Tree[cur].right); // right์— ๋…ธ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด right๋กœ
	cout << cur << endl; // ์ž์‹์ด ์—†์œผ๋ฉด ์ž์‹ ์„ ์ถœ๋ ฅ
}

void makeTree(int cur) { // ํ˜„์žฌ ๋…ธ๋“œ ๊ธฐ์ค€
	if (num < cur) { // ์ž๊ธฐ๋ณด๋‹ค ์ž‘์€์ˆ˜๋ฉด ์™ผ์ชฝ
		if (Tree[cur].left == 0) { // ์™ผ์ชฝ์— ์‚ฝ์ž…๋œ๊ฒŒ ์—†์œผ๋ฉด ์‚ฝ์ž…
			Tree[cur].left = num;
			//cout << cur << "'s left is " << num << endl;
			return;
		}
		makeTree(Tree[cur].left); // ์žˆ์œผ๋ฉด ๋‚ด๋ ค๊ฐ
	}
	if (num > cur) { // ์ž๊ธฐ๋ณด๋‹ค ํฌ๋ฉด ์˜ค๋ฅธ์ชฝ
		if (Tree[cur].right == 0) { // ์˜ค๋ฅธ์ชฝ์— ์‚ฝ์ž…๋œ๊ฒŒ ์—†์œผ๋ฉด ์‚ฝ์ž…
			Tree[cur].right = num;
			//cout << cur << "'s right is " << num << endl;
			return;
		}
		makeTree(Tree[cur].right); // ์žˆ์œผ๋ฉด ๋‚ด๋ ค๊ฐ
	}
}

int main() {

	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	
	cin >> num;
	int Root = num;

	while (cin>>num) { 
		if (num == EOF) break; // ๋ฐ์ดํ„ฐ๊ฐ€ ๋๋‚˜๋ฉด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ <- ์ด๋ถ€๋ถ„์ด ๋ฌธ์ œ์ธ๊ฐ€..??
		makeTree(Root);
	}
	
	postOrder(Root);

	return 0;
}

BaekJoon_1897, ํ† ๋‹ฌ๊ธฐ(BFS)

์–ด๋–ค์‹์ด๋ƒ๋ฉด cal-> calf ์˜ ๊ฒฝ์šฐ
cal -> al -> l -> NULL
calf -> alf -> lf -> f
calf ์˜ ๊ธธ์ด๊ฐ€ 1์ด๋  ๊ฒฝ์šฐ๋งŒ push ๋ฅผ BFS๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

#include<iostream>
#include<vector>
#include<queue>
#define endl "\n"
using namespace std;

int d;
//vector<vector<int>> Word(1000);
vector<string> Word[1001];
queue<string> Q;
string word, dict, answer, word2;

void BFS() {
	Q.push(word); // push "cal"
	int Len = 4;

	while (!Q.empty()) {
		int re = Q.size();
		for (int q = 0; q < re; q++) { // ๊ฒ€์‚ฌํ•  Q ์•ˆ์— ์žˆ๋Š” ๋ฌธ์ž๋“ค. ex) cal
			for (int i = 0; i < Word[Len].size(); i++) { // ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ Len์ธ ๋ชจ๋“  ๋ฌธ์ž๋“ค ๊ฒ€์‚ฌ. ex) calf, call, coal

				string com_q = Word[Len][i]; // ๊ฒ€์‚ฌ๋‹นํ•  ๋ฌธ์ž์—ด ๋ณต์‚ฌ. ex) calf
				string Q_f = Q.front(); // ๊ฒ€์‚ฌํ•  ๋ฌธ์ž์—ด ๋ณต์‚ฌ. ex) cal
				int decom = 0;

				for (int j = 0; j < Len-1; j++) { // ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๊ฒ€์‚ฌ. ex) calf, call, coal ์€ ๋ชจ๋‘ 3๋ฒˆ ๊ฒ€์‚ฌ

					int index = com_q.find(Q_f[j]); // ๊ธธ์ด๊ฐ€ Len์ธ ๋ฌธ์ž์—ด์—์„œ i ๋ฒˆ์งธ ๋ฌธ์ž์—ด์˜ j๋ฒˆ์งธ ๋‹จ์–ด. ex) Len=4 ์ด๋ฉด calf ์˜ j๋ฒˆ์งธ ๋‹จ์–ด๋ฅผ ์ฐพ์Œ.
					//cout << "q_f : " << Q_f[j] << ", index : " << index << endl;
					if (index != string::npos) { // ์กด์žฌํ•œ๋‹ค๋ฉด
						//cout << "del : " << com_q[index] << endl;
						com_q.erase(index, 1); // ๊ทธ ๋ฌธ์ž ์‚ญ์ œ
					}

					if (com_q.size() == 1) { // ๊ฒฐ๊ตญ์— ํ•˜๋‚˜๋งŒ ๋‚จ๋Š”๋‹ค๋ฉด, ex) calf -> f
						//cout << "push : " << Word[Len][i] << endl;
						Q.push(Word[Len][i]); // ํ•˜๋‚˜๋งŒ ๋‹ฌ๋ผ์•ผ์ง€ ํ† ๋ฅผ ๋‹จ๊ฒƒ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
						answer = Word[Len][i]; // ๊ทธ๋ฆฌ๊ณ  ์ •๋‹ต ๊ฐฑ์‹ . ex) calfs
					}
				}
				//cout << "com_q : " << com_q << endl;
			}
			Q.pop(); // ๊ฒ€์‚ฌ๋ฅผ ๋‹คํ•œ Q๋Š” pop
			//cout << endl;
		}
		Len++;
	}
}

int main() {
	ios_base::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL);

	cin >> d >> word;

	for (int i = 0; i < d; i++) {
		cin >> dict;
		Word[dict.size()].push_back(dict); // ๊ธธ์ด๋ณ„๋กœ ์ €์žฅํ•œ๋‹ค.
	}

	BFS();

	cout << answer;

	return 0;
}

๋ฐฑ์ค€_12865, ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ - DP ์ ํ™”์‹ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์งˆ๋ฌธ

ํ˜น์‹œ ์ด๋ฒˆ๋ฌธ์ œ ์ ํ™”์‹์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์…จ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค๋ถ„ ๊ณ„์‹ ๊ฐ€์š”..???
์ œ๊ฐ€ ์ด๋ฒˆ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์ ํ™”์‹์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ•ด์•ผ๋˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•๋„ ์ƒ๊ฐ์ด ์•ˆ๋‚˜์„œ ์งˆ๋ฌธ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค!!

Programmers_๋‹จ์ฒด์‚ฌ์ง„ ์ฐ๊ธฐ, ์กฐ๊ฑด์˜ค๋ฅ˜

๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•œ ๋’ค, ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด์‹œ๋ฉด ์ „์ฒด์ ์œผ๋กœ ์ดํ•ด๊ฐ€ ๋ ๊ฒ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ๋‘๋ฒˆ์งธ ์กฐ๊ฑด์ธ R~T>2 ์—์„œ RNFAT๊ฐ€ ์‚ญ์ œ๋˜๋Š”๋ฐ, ์™œ ์‚ญ์ œ๊ฐ€ ๋˜๋Š”๊ฑธ๊นŒ์š”... ๊ฑฐ๋ฆฌ๋Š” 3์ด ๋‚˜์˜ค๊ณ  2๋ณด๋‹ค ์ปค์„œ ์‚ญ์ œ๋ ์ผ์ด ์—†์„๊ฑฐ ๊ฐ™์€๋ฐ์š”... ใ… ใ… 

#include <string>
#include <vector>
#include<iostream>
#include<sstream>
#include<string.h>
#include<cmath>

using namespace std;

vector<char> Kakao = { 'A','C','F','J','M','N','R','T'};
vector<string> All = {"RNFAT", "NFRTA", "RNAFT"}; // ์˜ˆ์‹œ๋กœ ํ•ด๋‘”๊ฑฐ์—์šฉ

int solution(int n, vector<string> data) {

    for (int i = 0; i < n; i++) { // ์กฐ๊ฑด๋งŒํผ ๋ฐ˜๋ณต
        for (int j = 0; j < All.size(); j++) {
            cout << endl;

            int f_i = All[j].find(data[i][0]); // ex) ์ฒซ๋ฒˆ์งธ ์˜ˆ์‹œ์—์„œ๋Š” N -> 1
            int s_i = All[j].find(data[i][2]); // ex) ์ฒซ๋ฒˆ์งธ ์˜ˆ์‹œ์—์„œ๋Š” F -> 2 
            int Abs = abs(s_i - f_i) - 1; // ๋‘ ์บ๋ฆญํ„ฐ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ

            cout << "์ฒซ๋ฒˆ์งธ ์บ๋ฆญํ„ฐ ์œ„์น˜, ๋‘๋ฒˆ์งธ ์บ๋ฆญํ„ฐ ์œ„์น˜ = " << f_i << ", " << s_i << ", ๋‘ ์บ๋ฆญํ„ฐ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ = " << Abs << endl;
            cout << "ํ˜„์žฌ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฐ์น˜ : " << All[j] << ", ์กฐ๊ฑด : " << data[i] << endl;

            if (data[i][3] == '=') // i๋ฒˆ์งธ ์กฐ๊ฑด์˜ ๋ถ€ํ˜ธ
            {
                cout << "=";
                if (Abs == 0) cout << "๋ฌธ์ œ์—†์Œ" << endl;
                if (Abs != 0) { // ๋ถ™์–ด์žˆ์ง€ ์•Š์œผ๋ฉด
                    cout << "erase, ";
                    cout << All[j] << endl;
                    All.erase(All.begin() + j);
                    j--; // ์ง€์›Œ์ฃผ๊ณ  j๋ฅผ ํ•˜๋‚˜ ๋นผ์ค€๋‹ค. why? ์‚ญ์ œ๋˜๋ฉด size๊ฐ€ ์ž‘์•„์ ธ์„œ
                }
            }

            else if (data[i][3] == '>')
            {
                cout << ">";
                if (Abs > data[i][4]) cout << "๋ฌธ์ œ์—†์Œ" << endl;
                if (Abs <= data[i][4]) { // ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šฐ๋ฉด ์‚ญ์ œ
                    cout << "erase, ";
                    cout << All[j] << endl;
                    All.erase(All.begin() + j);
                    j--;
                }
            }

            else if (data[i][3] == '<')
            {
                cout << "<";
                if (Abs < data[i][4]) cout << "๋ฌธ์ œ์—†์Œ" << endl;
                if (Abs >= data[i][4]) { // ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋ฉด ์‚ญ์ œ
                    cout << "erase, ";
                    cout << All[j] << endl;
                    All.erase(All.begin() + j);
                    j--;
                }
            }
        }
    }

    
    int answer = All.size();
    cout << answer;
    return answer;
}


int main() {

    vector<string> Data = { "N~F=0", "R~T>2" };
    int n = 2;

    cout << All.size() << endl;
    // ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์—ˆ๋‹ค ์น˜์ž
    // ๊ทธ๊ฒŒ All์ž„.

    solution(n, Data);

    return 0;
}

๋ฐ˜๋ก€๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

#include <iostream>
#include <string>
#include <vector>

using namespace std;

string str;
vector<string> vec;

int main() {
    cin >> str;
    int cnt = 0;
    for (int i = 0; i < str.size(); i++) {
        if (str[i] == ':') cnt++;
    }
    string temp;
    bool flag = false;
    for (int i = 0; i < str.size(); i++) {
        if (str[i] == ':') {  // : ์ผ๊ฒฝ์šฐ
            if (temp.size() == 0 && str[i + 1] == ':') {
                for (int j = 0; j < 8 - cnt; j++) {
                    vec.push_back("0000:");
                }
                continue;
            } else {
                int s = temp.size();
                for (int j = 0; j < 4 - s; j++) {
                    temp.insert(0, "0");
                }
                temp += ":";
                vec.push_back(temp);
                temp = "";
            }
        } else {  // ์ˆซ์ž์ผ๊ฒฝ์šฐ
            temp += str[i];
            if (i == str.size() - 1) {
                int s = temp.size();
                for (int j = 0; j < 4 - s; j++) {
                    temp.insert(0, "0");
                }
                vec.push_back(temp);
            }
        }
    }
    for (int i = 0; i < vec.size(); i++) {
        if (i == 7) {
            for (int j = 0; j < 4; j++) {
                cout << vec[i][j];
            }
        } else
            cout << vec[i];
    }
}```

BaekJoon_17144, ๋ฏธ์„ธ๋จผ์ง€ ์•ˆ๋…•! - ์ด๊ฒŒ ์™œ ํ‹€๋ ค

#include

using namespace std;

int R, C, T, cleaner;
int MAP[51][51];
int next_x[] = { -1,1,0,0 };
int next_y[] = { 0,0,-1,1 };

void input() {
cin >> R >> C >> T;
for (int y = 1; y <= R; y++) {
for (int x = 1; x <= C; x++) {
cin >> MAP[y][x];
if (MAP[y][x] == -1) {
cleaner = y; // ๊ณต๊ธฐ ์ฒญ์ •๊ธฐ ์œ„์น˜
}
}
}
return;
}

// ๋จผ์ง€ํ™•์‚ฐ
void diff() {
int MAP_diff[51][51];
for (int y = 1; y <= R; y++) {
for (int x = 1; x <= C; x++) {
MAP_diff[y][x] = 0;
}
}
for (int y = 1; y <= R; y++) {
for (int x = 1; x <= C; x++) {
int diff_cnt = 0; // ํ™•์‚ฐ๋œ ์นธ
if (MAP[y][x] == -1) continue;
for (int i = 0; i < 4; i++) {
int nx = x + next_x[i];
int ny = y + next_y[i];
if (nx > 0 && ny > 0 && nx <= C && ny <= R && MAP[ny][nx]!=-1) { // ๋ฒ”์œ„์•ˆ
diff_cnt++;
MAP_diff[ny][nx] += MAP[y][x] / 5;
}
}
MAP[y][x] = MAP[y][x] - (MAP[y][x] / 5) * diff_cnt;
}
}
for (int y = 1; y <= R; y++) {
for (int x = 1; x <= C; x++) {
if (MAP[y][x] == -1) continue; // ๊ณต๊ธฐ ์ฒญ์ •๊ธฐ ์นธ์€ ๊ทธ๋Œ€๋กœ
MAP[y][x] += MAP_diff[y][x]; // ํ™•์‚ฐ๋œ๋งŒํผ ๋”ํ•ด์คŒ.
}
}
return;
}

// ๊ณต๊ธฐ ์ˆœํ™˜
void cycle() {
int start_up = cleaner - 1; // ์œ„์ชฝ์ˆœํ™˜
int start_down = cleaner; // ์•„๋ž˜์ชฝ์ˆœํ™˜

int temp_x = MAP[start_up][C];
for (int x = C; x > 2; x--) {
	MAP[start_up][x] = MAP[start_up][x - 1];
}
MAP[start_up][2] = 0;
int temp_y = MAP[1][C];
for (int y = 1; y < start_up; y++) {
	if (y == start_up - 1) MAP[y][C] = temp_x;
	else MAP[y][C] = MAP[y + 1][C];
}
temp_x = MAP[1][1];
for (int x = 1; x < C; x++) {
	if (x == C - 1) MAP[1][x] = temp_y;
	else MAP[1][x] = MAP[1][x + 1];
}
for (int y = start_up - 1; y > 1; y--) {
	if (y == 2) MAP[y][1] = temp_x;
	else MAP[y][1] = MAP[y - 1][1];
} // ์œ„๋กœ์ˆœํ™˜ ๋...

temp_x = MAP[start_down][C];
for (int x = C; x > 2; x--) {
	MAP[start_down][x] = MAP[start_down][x - 1];
}
MAP[start_down][2] = 0;
temp_y = MAP[R][C];
for (int y = C; y > start_down; y--) {
	if (y == start_down + 1) MAP[y][C] = temp_x;
	else MAP[y][C] = MAP[y - 1][C];
}
temp_x = MAP[R][1];
for (int x = 1; x < C; x++) {
	if (x == C - 1) MAP[R][x] = temp_y;
	else MAP[R][x] = MAP[R][x + 1];
}
for (int y = start_down + 1; y < R; y++) {
	if (y == R - 1) MAP[y][1] = temp_x;
	else MAP[y][1] = MAP[y + 1][1];
} // ์•„๋ž˜๋กœ์ˆœํ™˜ ๋...

return;

}
int main() {

input();
while (T--) {
	diff();
	cycle();
}

long long answer = 0;
for (int y = 1; y <= R; y++) {
	for (int x = 1; x <= C; x++) {
		if (MAP[y][x] == -1) continue;
		answer += MAP[y][x];
	}
}
cout << answer;
return 0;

}

์‹œ๊ฐ„์ดˆ๊ณผ ํ† ๋‹ฌ๊ธฐ.cpp

#include <algorithm>
#include <iostream>
#include <queue>
#include <string>
#include <vector>

using namespace std;

vector<string> vec;  // ์‚ฌ์ „ ๋‹ด์„๋ฐฐ์—ด
int n;
string ori;       // ์ฒ˜์Œ ๋“ค์–ด๊ฐˆ ๋ฌธ์ž์—ด
int maximum = 0;  // ๊ฐ€์žฅํฐ ๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜
string result;    // ๊ฐ€์žฅํฐ ๋ฌธ์ž์—ด ๋‹ด์„ ๋ณ€์ˆ˜
int idx;          // ์‚ฌ์ „์„ ๊ธธ์ด๋Œ€๋กœ sort ์‹œ์ผœ๋†“์•˜๊ธฐ๋•Œ๋ฌธ์—, ํ์—๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š”, ํ์—์„œ ์ผ์ฐ pop ๋  ์ˆ˜๋ก ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

bool compare(string a, string b) { return a.length() < b.length(); }  // quick sort์˜ ์ปดํŽ˜์–ด ํ•จ์ˆ˜, ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์œผ๋กœ ๋งŒ๋“ฌ

void analyze_max(string a) {  // string a ๋ฅผ ๋„ฃ์–ด์„œ ๋งฅ์‹œ๋ฉˆ ๊ฐ’๊ณผ ๊ฐ€์žฅ ํฐ ๋ฌธ์ž์—ด์„ ๋ณ€์ˆ˜์— ๊ฐ๊ฐ ์ž…๋ ฅ.
    if (int(a.length()) > maximum) {
        maximum = a.length();
        result = a;
    }
}

void bfs() {
    queue<string> que;
    que.push(ori);
    analyze_max(ori);
    while (!que.empty()) {
        string cur = que.front();
        que.pop();
        while (cur.length() >= vec[idx].length() && idx < vec.size()) idx++;  // vec[idx] ๊ฐ€ vec ์˜ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ์ž‘๊ณ  ํ˜„์žฌ cur์˜ ๋ฌธ์ž์—ด ๊ธธ์ด๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด idx++
        for (int i = 97; i <= 122; i++) {                                     // ์•„์Šคํ‚ค ์ฝ”๋“œ a~z๋ฅผ ๋ฌธ์ž์—ด temp์—๋‹ค๊ฐ€ ๋„ฃ์–ด์คŒ.
            string temp;                                                      // cur์„ ๋ฐ”๊พธ์ง€์•Š๊ณ  ์ผ๋‹จ temp์— ์ €์žฅํ•ด์„œ ๊ทธ๊ฑธ๋ฐ”๊ฟ”์„œ ๋น„๊ตํ• ๊ฑฐ์ž„
            for (int j = 0; j <= cur.length(); j++) {                         // ํ˜„์žฌ cur์˜ ์ธ๋ฑ์Šค ๊ณณ๊ณณ๋งˆ๋‹ค ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด๋ณผ๊ฑฐ์ž„
                temp = cur;
                string a;                                                                     // ์—ฌ๊ฑฐ temp ์— ๋„ฃ์–ด์ค„๊ฑฐ
                a = char(i) + '\0';                                                           // i ๋ฅผ string ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•ด์•ผ๋Œ
                temp.insert(j, a);                                                            // temp ๋Š” a~z๋ฅผ ๊ฐ ์ธ๋ฑ์Šค์— ํ•œ๋ฒˆ์”ฉ ๋„ฃ์–ด๋ณธ ๋ชจ๋“ ๊ฒฝ์šฐ์˜ ์ˆ˜์˜ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
                for (int k = idx; temp.length() == vec[k].length() && k < vec.size(); k++) {  // temp์˜ ๊ธธ์ด๋ณด๋‹ค vec์˜ idx ์—์žˆ๋Š” ๋ฌธ์ž ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ณ„์†์ง„ํ–‰
                    if (temp == vec[k]) {                                                     // ๋งŒ์•ฝ ์ฐพ๋Š”๊ฐ’์ด ๋ฒกํ„ฐ์—์žˆ๋‹ค๋ฉด
                        que.push(temp);                                                       // ํ์—ํ‘ธ์‰ฌ
                        analyze_max(temp);                                                    // ๊ฐ€์žฅํฐ์ง€ํ™•์ธ.
                    }
                }
                if (idx >= vec.size()) break;  // ๋งŒ์•ฝ idx๊ฐ€ ๋ฒกํ„ฐ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋ธŒ๋ฆญ.
            }
        }
    }
}

int main() {
    ios_base ::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> n >> ori;

    for (int i = 0; i < n; i++) {
        string a;
        cin >> a;
        vec.push_back(a);
    }

    sort(vec.begin(), vec.end(), compare);  // ์˜ค๋ฆ„์ฐจ์ˆœ์ •๋ ฌ
    bfs();
    cout << result;
}```

BaekJoon_14622, ์†Œ์ˆ˜ ๊ฒŒ์ž„

#include<iostream>
#include<algorithm>
#define endl "\n"

using namespace std;

int n;
bool isSosu[10002] = { false, };
bool Said[10001] = { false, };

int d_large[3] = { 0,0,0 };
int g_large[3] = { 0,0,0 };

void Sosu_making() { // ์—๋ผํ† ์Šค ํ…Œ๋„ค์Šค์˜ ์ฒด

	int s = 10001;
	fill_n(isSosu, 10001, true); // ์ „๋ถ€ ์†Œ์ˆ˜๋กœ ํ‘œ์‹œ
	isSosu[0] = isSosu[1] = false; // ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‘ ์ˆ˜ ํ‘œ์‹œ

	for (int i = 2; i <= sqrt(s); i++) { 
		if (isSosu[i] == true) {
			for (int j = i + i; j <= s; j += i) {
				isSosu[j] = false;
			}
		}
	}
}

void Game(int n, long long int d_score, long long int g_score) {
	int d_index = 0, g_index = 0;

	for (int i = 0; i < n; i++) {
		int dae, guu;
		cin >> dae >> guu; // ๋Œ€์›…์ด์™€ ๊ทœ์„ฑ์ด๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋งํ•จ

		if (!isSosu[dae]) { // ๋Œ€์›…์ด๊ฐ€ ๋งํ•œ๊ฒŒ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
			if (g_large[2] == 0) { // ๊ทœ์„ฑ์ด๊ฐ€ ๋งํ•œ ์†Œ์ˆ˜๊ฐ€ 3๊ฐœ๊ฐ€ ์•ˆ๋˜๋ฉด
				cout << "g+=1000" << endl;
				g_score += 1000; // ์ฒœ์ ์„ ๋”ํ•ด์ค€๋‹ค.
			}
			else { // ๊ทœ์„ฑ์ด๊ฐ€ ๋งํ•œ ์†Œ์ˆ˜๊ฐ€ 3๊ฐœ ์ด์ƒ์ด๋ผ๋ฉด
				cout << "g+=large" << endl;
				g_score += g_large[0]; // ๋งํ•œ ์†Œ์ˆ˜ ์ค‘ 3๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๋ฅผ ๋”ํ•ด์ค€๋‹ค.
			}
		}
		else if (Said[dae]) { // ๋Œ€์›…์ด๊ฐ€ ๋งํ•œ๊ฒŒ ์ด์ „์— ๋งํ•œ ์†Œ์ˆ˜์ธ ๊ฒฝ์šฐ
			cout << "d-=1000" << endl;
			d_score -= 1000; // ํ•ด๋‹นํŒ€ -1000
		}
		else { // ์กฐ๊ฑด์— ๋งž๋Š” ์†Œ์ˆ˜์ธ ๊ฒฝ์šฐ
			Said[dae] = true; // ๋งํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ๋กํ•œ๋‹ค.
			if (d_index < 3) { // ๋Œ€์›…์ด๊ฐ€ ๋งํ•œ ์†Œ์ˆ˜๊ฐ€ 3๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด
				cout << "dae say sosu! & input" << endl;
				d_large[d_index] = dae; // ๋งํ•œ ์†Œ์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๊ณ  ์ธ๋ฑ์Šค๋ฅผ ๋”ํ•œ๋‹ค.
				d_index++;
				if(d_index==3) sort(d_large, d_large + 3); // d_lareg[0] ๊ฐ€ 3๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๊ฐ€ ๋˜๊ฒŒํ•จ.
			}
			else {
				cout << "dae say sosu!" << endl;
				d_large[0] = max(d_large[0], dae);
				sort(d_large, d_large + 3); // d_lareg[0] ๊ฐ€ 3๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๊ฐ€ ๋˜๊ฒŒํ•จ.
			}
		}

		if (!isSosu[guu]) { 
			if (d_large[2] == 0) { 
				cout << "d+=1000" << endl;
				d_score += 1000; 
			}
			else { 
				cout << "d+=large" << endl;
				d_score += d_large[0]; 
			}
		}
		else if (Said[guu]) {
			cout << "g-=1000" << endl;
			g_score -= 1000; 
		}
		else { 
			Said[guu] = true; 
			if (g_index < 3) { 
				cout << "guu say sosu! & input" << endl;
				g_large[g_index] = guu;
				g_index++;
				if (g_index == 3) sort(g_large, g_large + 3);
			}
			else {
				cout << "guu say sosu!" << endl;
				g_large[0] = max(g_large[0], guu);
				sort(g_large, g_large + 3);
			}
		}
	}
	cout << "๋Œ€์›… : " << d_score << endl; // 1000
	cout << "๊ทœ์„ฑ : " << g_score << endl; // 0
}

int main(){

	ios_base::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL);

	Sosu_making();

	cin >> n; // ๋ผ์šด๋“œ

	long long int d_score = 0, g_score = 0;
	Game(n, d_score, g_score);

	cout << "๋Œ€์›… : " << d_score << endl; // 0
	cout << "๊ทœ์„ฑ : " << g_score << endl; // 0

	return 0;
}

์—ฌ๊ธฐ์„œ ๋Œ€์›…์ด์™€ ๊ทœ์„ฑ์ด ์ ์ˆ˜๊ฐ€ Game ์•ˆ์—์„œ์˜ ์ถœ๋ ฅ์—์„œ๋Š” 1000, 0 ์œผ๋กœ ์ œ๋Œ€๋กœ ๋‚˜์˜ค๋Š”๋ฐ, mainํ•จ์ˆ˜ ์•ˆ์—์„œ์˜ ์ถœ๋ ฅ์€ 0, 0 ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ์š”..??

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.