[문제 링크]

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

www.acmicpc.net


등차수열 = 증가하거나 감소하는 수치가 일정한 수열

각 자리수마다 0~9의 숫자가 올 수 있으므로 i=0부터 i<10까지 반복문을 만들고

반복문 안에 재귀를 돌려 나오는 모든 경우의 수를 구한다. 재귀호출 할때마다 뽑은 숫자를 배열에 넣었을 때의 정수값(pNum)과 뽑은 숫자의 개수(pick)을 인자로 넘겨주었다. 코드를 본다면 쉽게 이해할 수 있을 것이라 생각한다.


#include <iostream>
#include <vector>
using namespace std;
 
vector<int> picked;
int cNum;
int cArrLen = 1;
int cnt = 0;
void Solution(int pNum, int pick)
    if (cNum < pNum) return;
    if (pick > 0 && pick <= cArrLen)
    {
        if (pick == 1 || pick == 2) cnt++;
        else
        {
            int comp = picked[0- picked[1];
            for (int i = 1; i < pick-1; i++)
            {
                if (picked[i] - picked[i + 1!= comp)
                    break;
                cnt++;
            }
        }
    }
    for (int i = 0; i < 10; i++)
    {
        if (pick == 0)
            if (i == 0continue;
        picked.push_back(i);
        Solution((pNum * 10+ i, pick + 1);
        picked.pop_back();
    }
}
int main(void)
{
    cin >> cNum;
    int temp = cNum;
    while (temp / 10 != 0)
    {
        temp /= 10;
        cArrLen++;
    }
    Solution(0,0);
    cout << cnt << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

알고리즘 200일 프로젝트 - 12day

내일도 열심히!

'알고리즘 > BOJ' 카테고리의 다른 글

백준 12100번: 2048(Easy) (C++)  (0) 2020.04.19
백준 15683번: 감시 (C++)  (0) 2020.04.18
백준 15686번: 치킨 배달 (C++)  (0) 2020.04.15
백준 14500번: 테트로미노 (C++)  (0) 2020.04.15
백준 14889번: 스타트와 링크  (0) 2020.04.14

[문제 링크]

 

15686번: 치킨 배달

크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는

www.acmicpc.net


이 문제는 도시 좌표 전체를 배열에 담을 필요 없이 치킨집(2)과 가정집(1) 좌표만 골라서 따로 선언한 배열에 담아주면 쉽게 풀 수 있다.

치킨집 배열에서 M개 치킨집을 살리는 경우를 구한다음, 모든 경우에 따른 치킨거리를 계산하여 최솟값을 출력하면 원하는 결과를 얻을 수 있다.


#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
 
const int INF = 987654321;
vector<pair<intint>> housePos;
vector<pair<intint>> chickenPos;
vector<int> ckPick;
int ckCnt;
int bestCityDist = INF;
int min(int a, int b) { return a < b ? a : b; }
void ChickenDistance()
{
    int houseLen = housePos.size();
    int cityDist = 0;
    for (int i = 0; i < houseLen; i++)
    {
        int minDistance = INF;
        for (int j = 0; j < ckCnt; j++)
        {
            int yDist = abs(housePos[i].first - chickenPos[ckPick[j]].first);
            int xDist = abs(housePos[i].second - chickenPos[ckPick[j]].second);
            minDistance = min(minDistance, yDist + xDist);
        }
        cityDist += minDistance;
    }
 
    bestCityDist = min(bestCityDist, cityDist);
}
 
void Solution(int start, int pick)
{
    if (pick == ckCnt)
    {
        ChickenDistance();
        return;
    }
    int ckLen = chickenPos.size();
    for (int i = start; i < ckLen; i++)
    {
        ckPick.push_back(i);
        Solution(i + 1, pick+1);
        ckPick.pop_back();
    }
}
int main(void)
{
    int maxLen;
    cin >> maxLen >> ckCnt;
    for (int i = 0; i < maxLen; i++)
        for (int j = 0; j < maxLen; j++)
        {
            int n;
            cin >> n;
            if(n==1)housePos.push_back(pair<intint>(i, j));
            if(n==2)chickenPos.push_back(pair<int,int>(i, j));
        }
    Solution(00);
    cout << bestCityDist << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

알고리즘 200일 프로젝트 - 10day

내일도 열심히!

'알고리즘 > BOJ' 카테고리의 다른 글

백준 15683번: 감시 (C++)  (0) 2020.04.18
백준 1065번: 한수  (0) 2020.04.17
백준 14500번: 테트로미노 (C++)  (0) 2020.04.15
백준 14889번: 스타트와 링크  (0) 2020.04.14
백준 1018번: 체스판 다시 칠하기  (0) 2020.04.13

[문제 링크]

 

14500번: 테트로미노

폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누

www.acmicpc.net


먼저 노트와 펜을 준비한다.

블록의 한 칸을 (y,x)로 잡은다음 나머지 3칸을 기준점과 비교해 y,x 좌표를 적어보자.

그리고 5가지 블록의 회전 모양과 그것을 대칭했을 때 모양에 대한 y,x좌표를 전부 적는다. 

적은 내용을 바탕으로 나올 수 있는 블록 모양을 배열에 담고 보드 (0,0) 좌표에서부터 (N-1,N-1) 까지 모든 칸에 블록을 대보고 그 중에서 최대 점수를 maxScore변수에 저장하고 출력하면 원하는 결과를 얻을 수 있다.


#include <iostream>
#include <vector>
using namespace std;
 
const int dy[19][4= {
{0,0,0,0}, {0,1,2,3},    // ㅡ
{0,0,1,1},    // ㅁ
{0,1,2,2}, {0,0,0,1}, {0,0,1,2}, {0,0,0,-1}, {0,1,2,2}, {0,0,0,1}, {0,0,1,2}, {0,1,1,1},    // ㄴ
{0,1,1,2}, {0,0,-1,-1}, {0,1,0,-1}, {0,0,1,1},    // ㄱㄴ
{0,0,0,1}, {0,1,2,1}, {0,1,1,1}, {0,1,1,2}    // ㅜ
};
const int dx[19][4= {
{0,1,2,3}, {0,0,0,0},    // ㅡ
{0,1,0,1},    // ㅁ
{0,0,0,1}, {0,1,2,0}, {0,1,1,1}, {0,1,2,2}, {0,0,0,-1}, {0,1,2,2}, {0,1,0,0}, {0,0,1,2},    // ㄴ
{0,0,1,1}, {0,1,1,2}, {0,0,1,1}, {0,1,1,2},    // ㄱㄴ
{0,1,2,1}, {0,0,0,-1}, {0,-1,0,1}, {0,0,1,0}    // ㅜ
};
 
int board[501][501];
int maxCol, maxRow;
int maxScore = -987654321;
int max(int a, int b) { return a > b ? a : b; }
void SetBlock(int startY, int startX)
{
    int sum;
    for (int i = 0; i < 19; i++)
    {
        sum = 0;
        for (int j = 0; j < 4; j++)
        {
            if (startY + dy[i][j] < 0 || startY + dy[i][j] >= maxCol ||
                startX + dx[i][j] < 0 || startX + dx[i][j] >= maxRow)
                continue;
            sum += board[startY + dy[i][j]][startX + dx[i][j]];
        }
        maxScore = max(maxScore, sum);
    }
}
void Solution()
{
    for (int i = 0; i < maxCol; i++)
        for (int j = 0; j < maxRow; j++)
            SetBlock(i, j);
}
int main(void)
{
    cin >> maxCol >> maxRow;
    for(int i=0; i<maxCol; i++)
        for (int j = 0; j < maxRow; j++)
        {
            cin >> board[i][j];
        }
    Solution();
    cout << maxScore << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

알고리즘 200일 프로젝트 - 10day

내일도 열심히!

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1065번: 한수  (0) 2020.04.17
백준 15686번: 치킨 배달 (C++)  (0) 2020.04.15
백준 14889번: 스타트와 링크  (0) 2020.04.14
백준 1018번: 체스판 다시 칠하기  (0) 2020.04.13
백준 1182번: 부분수열의 합  (0) 2020.04.13

[문제 링크]

 

14889번: 스타트와 링크

예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.

www.acmicpc.net


풀이까지 시간이 많이 걸린 문제다. 문제를 잘못 이해하고 접근한 것이 원인이었다.

알고리즘은 다음과 같이 진행된다.

먼저 N명을 입력받고 N*N 배열에 능력치를 입력받는다.

입력받은 N명 중 N/2명으로 팀을 나누는 모든 조합(단, 순서만 다른 조합은 제외)을 구한다.

조합에 속한 원소를 A팀 속하지 않은 원소를 B팀으로 나눠 각 팀의 능력치를 계산하고 A팀과 B팀의 능력치 차이를 구한다음 최솟값을 갱신해주면 원하는 출력을 얻을 수 있다.


#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
 
const int INF = 987654321;
vector<vector<int>> member;
vector<int> picked;
vector<bool> visited;
int memNum;
int bestBalance = INF;
int min(int a, int b) { return a < b ? a : b; }
void Solution(int start, int toPick)
{
    if (toPick == memNum / 2)
    {
        int Ateam = 0, Bteam = 0;
        for (int i = 0; i < toPick; i++)    // A팀
            for (int j = 0; j < toPick; j++)
                Ateam += member[picked[i]][picked[j]];
 
        for(int i=0; i< memNum; i++)    // B팀
            for (int j = 0; j < memNum; j++)
            {
                if (visited[i] == true || visited[j] == truecontinue;
                Bteam += member[i][j];
            }
        int balance = abs(Ateam - Bteam);
        bestBalance = min(bestBalance, balance);
        return;
    }
    for (int i = start; i < memNum; i++)
    {
        picked.push_back(i);
        visited[i] = true;
        Solution(i+1, toPick + 1);
        picked.pop_back();
        visited[i] = false;
    }
}
int main(void)
{
    cin >> memNum;
    for (int i = 0; i < memNum; i++)
    {
        vector<int> temp;
        for (int j = 0; j < memNum; j++)
        {
            int n;
            cin >> n;
            temp.push_back(n);
        }
        visited.push_back(false);
        member.push_back(temp);
        temp.clear();
    }
    Solution(0,0);
    cout << bestBalance << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

알고리즘 200일 프로젝트 - 9day

내일도 열심히!

[문제 링크]

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net


먼저, 흰색타일은 1, 검은색타일은 -1이라고 생각하고 풀어보자.

체스판에서 흰색타일(1) 옆은 반드시 검은색타일(-1), 검은색타일(-1) 옆은 반드시 흰색타일(1)이 온다.

따라서 시작타일을 1로 잡고 다음 타일을 검사할 때마다 -1 곱해주면 별도의 체스 보드판을 배열로 정의하지 않아도 문제를 해결할 수 있다.


 
#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
const int MIN = 987654321;
vector<vector<int>> board;
int maxCol, maxRow;
int minCnt = MIN;
int min(int a, int b) { return a < b ? a : b; }
void Solution(int startY, int startX)
{
    if (startY + 8 > maxCol || startX + 8 > maxRow) return;
    int chk = 1;
    int whiteCnt = 0;
    int blackCnt = 0;
    for (int i = startY; i < startY + 8; i++)
    {
        for (int j = startX; j < startX + 8; j++)
        {
            if (board[i][j] != chk) whiteCnt++;
            else blackCnt++;
            chk *= -1;
        }
        chk *= -1;
    }
    int cnt = min(whiteCnt, blackCnt);
    minCnt = min(minCnt, cnt);
    //if(startY+7 < maxCol) Solution(startY + 1, startX);
    //if(startX+7 < maxRow) Solution(startY, startX + 1);
}
int main(void)
{
    cin >> maxCol >> maxRow;
    vector<int> temp;
    for (int i = 0; i < maxCol; i++)
    {
        string wbStr;
        cin >> wbStr;
        for (int j = 0; j < maxRow; j++)
        {
            if (wbStr[j] == 'W') temp.push_back(1);
            else temp.push_back(-1);
        }
        board.push_back(temp);
        temp.clear();
    }
 
    for(int i=0; i < maxCol; i++)
        for(int j=0; j < maxRow; j++)
            Solution(i,j);
 
    cout << minCnt << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

알고리즘 200일 프로젝트 - 8day

처음 컴파일할 땐 위에 주석처리한 코드를 통해 재귀호출했는데 시간초과가 났다. 한참을 삽질하다가

메인함수에서 반복호출하도록 바꿨더니 그제서야 정답 처리를 받을 수 있었다.

두 호출방법에서 어떤 시간차이가 발생했던건지 아직 잘 모르겠다.. 더 공부하면 알 수 있을까?

'알고리즘 > BOJ' 카테고리의 다른 글

백준 14500번: 테트로미노 (C++)  (0) 2020.04.15
백준 14889번: 스타트와 링크  (0) 2020.04.14
백준 1182번: 부분수열의 합  (0) 2020.04.13
백준 1966번: 프린터 큐  (0) 2020.04.13
백준 14888번: 연산자 끼워넣기  (0) 2020.04.12

[문제 링크]

 

1182번: 부분수열의 합

첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.

www.acmicpc.net


부분수열의 정의를 제대로 알고, 문제를 정확히 이해하면 쉽게 풀리는 문제라고 생각한다.

1~N개의 수를 포함하는 모든 조합들 중 순서만 다른 조합을 제외한 나머지 조합들을 대상으로 조합이 가진 원소들의 합이 입력된 값과 같다면 카운트를 1증가시키고 마지막으로 결과를 출력하면 원하는 답을 얻을 수 있다.


#include <iostream>
#include <vector>
using namespace std;
 
vector<int> sequence;
int numCnt, stand, cnt=0;
void Solution(int start, int sum)
{
    for (int i = start; i < numCnt; i++)
        Solution(i + 1, sum+sequence[i]);
 
    if (start == 0 && sum == stand) return;    // stand가 0일 때 의도치않은 cnt값 증가 방지
    if (sum == stand) cnt++;
}
int main(void)
{
    cin >> numCnt >> stand;
    for (int i = 0; i < numCnt; i++)
    {
        int n;
        cin >> n;
        sequence.push_back(n);
    }
    Solution(0,0);
    cout << cnt << endl;
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

알고리즘 200일 프로젝트 - 8day

내일도 열심히!

'알고리즘 > BOJ' 카테고리의 다른 글

백준 14889번: 스타트와 링크  (0) 2020.04.14
백준 1018번: 체스판 다시 칠하기  (0) 2020.04.13
백준 1966번: 프린터 큐  (0) 2020.04.13
백준 14888번: 연산자 끼워넣기  (0) 2020.04.12
백준 6603번: 로또  (0) 2020.04.12

[문제 링크]

 

1966번: 프린터 큐

문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를

www.acmicpc.net


문제의 취지에 맞게 queue 자료구조를 사용해서 풀었다.

큐는 맨 앞에 원소값만 참조할 수 있기때문에 임시 큐를 생성하여 전체 원소들과 비교하였다.

코드는 다음과 같이 진행된다.

맨 앞의 원소와 뒤에 원소들 비교 --> 더 큰 원소가 존재한다면 해당 원소를 맨 뒤로 보냄 --> 더 큰 원소가 존재하지 않을 때까지 반복 --> 찾고있는 원소 위치와 비교 --> 틀리다면 횟수 1증가, 앞에 원소 제거 --> 맞다면 횟수 출력


#include <iostream>
#include <queue>
using namespace std;
 
queue<int> wait;
int Solution(int find, int cnt)
{
    queue<int> temp = wait;
    int pick = temp.front();
    int len = temp.size();
    for (int i = 0; i < len; i++)
    {
        if (pick < temp.front())
        {
            wait.pop();
            wait.push(pick);
            if (find == 0) find = len - 1;
            else find--;
            return Solution(find, cnt);
        }
        else temp.pop();
    }
    cnt++;
    if(find != 0)
    {
        wait.pop();
        find--;
        return Solution(find, cnt);
    }
    else return cnt;
}
 
int main(void)
{
    int testcase;
    cin >> testcase;
    while (testcase--)
    {
        int imp, fd;
        cin >> imp >> fd;
        for (int i = 0; i < imp; i++)
        {
            int n;
            cin >> n;
            wait.push(n);
        }
        cout << Solution(fd, 0<< endl;
        while (!wait.empty()) wait.pop();
    }
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

알고리즘 200일 프로젝트 - 8day

다른 사람들은 우선순위큐를 사용하여 쉽게 풀었는데, 나는 STL 사용법이 익숙치 않아서 무식하게 풀이한거 같다.

얼른 STL 공부해서 더 효율적인 방법으로 다시 한번 풀어보도록 해야겠다.

내일도 열심히!

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1018번: 체스판 다시 칠하기  (0) 2020.04.13
백준 1182번: 부분수열의 합  (0) 2020.04.13
백준 14888번: 연산자 끼워넣기  (0) 2020.04.12
백준 6603번: 로또  (0) 2020.04.12
백준 7568번: 덩치  (0) 2020.04.11

[문제 링크]

 

14888번: 연산자 끼워넣기

첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. 

www.acmicpc.net


배열의 앞에있는 원소를 제거하고 새로운 원소를 배열의 맨 앞에 추가하기 위해 자료구조로 deque를 사용했다.

알고리즘은 간단하다. 앞에 두 원소에 대해 덧셈, 뺄셈, 곱셈, 연산을 수행한다음, 배열에서 앞에 두 원소를 빼내고 연산의 결과값을 배열 맨 앞에 추가한다.

ex) 1 2 3 4 5 -> 1+2=3 -> '3' 3 4 5-> 반복

원소 두개를 빼고 한개를 추가하기 때문에 작업이 이루어질때마다 배열의 원소 갯수는 한개씩 줄어들게 되고,

배열에 원소 갯수가 한개만 남게되면 모든 연산을 다 마쳤다는 뜻이므로 그 결과를 최댓값, 최솟값과 비교하여 저장한다. 그리고 이러한 작업을 4개 연산자로 할 수 있는 모든 경우의 수만큼 반복한다음 최댓값 최솟값을 출력해주면 원하는 답을 얻을 수 있다.


#include <iostream>
#include <vector>
#include <deque>
using namespace std;
 
deque<int> expr;
vector<int> oprt;    // oprt[0]: +, oprt[1]: -, oprt[2]: *, oprt[3]: /
const int MAX = -987654321;
const int MIN = 987654321;
 
int maximum = MAX;
int minimum = MIN;
int max(int a, int b) { return a > b ? a : b; }
int min(int a, int b) { return a < b ? a : b; }
 
int  _operator(int type)
{
    int res;
    switch (type)
    {
    case 0:
        res = expr[0+ expr[1];
        break;
    case 1:
        res = expr[0- expr[1];
        break;
    case 2:
        res = expr[0* expr[1];
        break;
    case 3:
        res = expr[0/ expr[1];
        break;
    }
    return res;
}
void Solution(deque<int>& expr, vector<int>& oprt)
{
    int len = expr.size();
    if (len == 1)    // 기저사례. expr에 원소가 한개라면 결과 출력
    {
        int result = expr[0];
        maximum = max(maximum, result);
        minimum = min(minimum, result);
        return;
    }
 
    for (int i = 0; i < 4; i++)
    {
        if (oprt[i] == 0continue;
       oprt[i]--;
        int res = _operator(i);
        int expr0 = expr[0], expr1 = expr[1];
       expr.pop_front();
       expr.pop_front();
       expr.push_front(res);
       Solution(expr, oprt);
       expr.pop_front();
       expr.push_front(expr1);
       expr.push_front(expr0);
        oprt[i]++;
    }
}
int main(void)
{
    int num;
    cin >> num;
    for (int i = 0; i < num; i++)
    {
        int n;
        cin >> n;
        expr.push_back(n);
    }
    for (int i = 0; i < 4; i++)
    {
        int n;
        cin >> n;
        oprt.push_back(n);
    }
    Solution(expr, oprt);
    cout << maximum << endl;
    cout << minimum << endl;
 
    expr.clear();
    oprt.clear();
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

알고리즘 200일 프로젝트 - 7day

내일도 열심히! 

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1182번: 부분수열의 합  (0) 2020.04.13
백준 1966번: 프린터 큐  (0) 2020.04.13
백준 6603번: 로또  (0) 2020.04.12
백준 7568번: 덩치  (0) 2020.04.11
백준 14502번: 연구소  (0) 2020.04.11

+ Recent posts