https://www.acmicpc.net/problem/14501

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

 

 

 

#include "bits/stdc++.h"
using namespace std;
//퇴사
int n, maxi;
pair<int, int> arr[15];

void recursive(int start, int sum) {
    if (start >= n) {
        if (sum > maxi) maxi = sum;
        return;
    }
    for (int i=start; i<n; i++) {
        if (i+arr[i].first <= n) {
            recursive(i+arr[i].first, sum+arr[i].second);
        }
        else {
            recursive(i+arr[i].first, sum);
        }
    }
}

int main() {
    cin >> n;
    for (int i=0; i<n; i++) {
        cin >> arr[i].first >> arr[i].second;
    }
    recursive(0, 0);
    printf("%d", maxi);
}

'정보올림피아드-KOI > BOJ' 카테고리의 다른 글

백준 - 암호만들기  (0) 2022.03.19
백준 - 부분수열의 합  (0) 2022.03.19
백준 - 로또  (0) 2022.03.19
백준 숫자카드 - 이분탐색  (0) 2022.03.18
백준 1,2,3 더하기 (브루트 포스)  (0) 2022.03.18

 

 

JW

 

 

#include <bits/stdc++.h>
using namespace std;
//토마토

int main() {
	queue<pair<int, int>> q;
	int n, m;
	int arr[1002][1002] = {0,}, visited[1002][1002] = {0,};
	cin >> n >> m;
	for (int i=1; i<=m; i++) {
		for (int j=1; j<=n; j++) {
			cin >> arr[i][j];
		}
	}

	for (int i=1; i<=m; i++) {
		for (int j=1; j<=n; j++) {
			if (arr[i][j] == 1) {
				q.push({i, j});
				visited[i][j] = 1;
			}
			else if (arr[i][j] == -1) {
				visited[i][j] = 1;
			}
		}
	}
	while (!q.empty()) {
		int x = q.front().first;
		int y = q.front().second;
		q.pop();
		if (x-1 != 0 && arr[x-1][y] == 0 && visited[x-1][y] == 0) {
			q.push({x-1, y});
			arr[x-1][y] = arr[x][y] + 1;
			visited[x-1][y] = 1;
		}
		if (x+1 != m+1 && arr[x+1][y] == 0 && visited[x+1][y] == 0) {
			q.push({x+1, y});
			arr[x+1][y] = arr[x][y] + 1;
			visited[x+1][y] = 1;
		}
		if (y-1 != 0 && arr[x][y-1] == 0 && visited[x][y-1] == 0) {
			q.push({x, y-1});
			arr[x][y-1] = arr[x][y] + 1;
			visited[x][y-1] = 1;
		}
		if (y+1 != n+1 && arr[x][y+1] == 0 && visited[x][y+1] == 0) {
			q.push({x, y+1});
			arr[x][y+1] = arr[x][y] + 1;
			visited[x][y+1] = 1;
		}
	}
	for (int i=1; i<=m; i++) {
		for (int j=1; j<=n; j++) {
			if (visited[i][j] == 0) {
				printf("-1");
				return 0;
			}
		}
	}
	int maxi = 0;
	for (int i=1; i<=m; i++) {
		for (int j=1; j<=n; j++) {
			if (arr[i][j] > maxi) {
				maxi = arr[i][j];
			}
		}
	}
	printf("%d", maxi-1);
}

 

 

'정보올림피아드-KOI > BOJ' 카테고리의 다른 글

백준 균형잡힌 세상  (0) 2022.03.07
백준 소수 구하기 1929  (0) 2022.03.07
스택 Stack  (0) 2022.02.04
단어 뒤집기 2  (0) 2021.12.31
백준 : 가운데를 말해요 1655번  (0) 2020.05.10

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=228&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단6

int rec(int index){
    if(index <= 3)
        return index;

    return rec(index/2) + rec(index-1);
}
int main() {
    int n;
    cin >> n;

    printf("%d ",rec(n));

    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

quick sort (퀵정렬) - 내림차순  (0) 2021.12.31
함수3 - 형성평가6  (0) 2021.12.30
590 : 함수3 - 자가진단5  (0) 2021.12.30
592 : 함수3 - 자가진단4  (0) 2021.12.30
589 : 함수3 - 자가진단3  (0) 2021.12.30

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=227&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

 

#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단5
int out[30];
int n;
void rec(int index){
    if(index == n){
        for(int i=0; i<n; i++){
            printf("%d ", out[i]);
        }
        puts("\n");
        return;
    }

    for(int i=0; i<6; i++){
        out[index] = i+1;
        rec(index+1);
    }

}
int main() {

    cin >> n;

    rec(0);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

함수3 - 형성평가6  (0) 2021.12.30
591 : 함수3 - 자가진단6  (0) 2021.12.30
592 : 함수3 - 자가진단4  (0) 2021.12.30
589 : 함수3 - 자가진단3  (0) 2021.12.30
미로탈출 - 파이썬  (0) 2021.02.04

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=229&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

 

#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단4

int rec(int sum, int n){
    if(n==0)
        return sum;
    sum += pow(n%10, 2);
    rec(sum, n/10);
}
int main() {
    int n;
    cin >> n;

    printf("%d",rec(0, n));
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

591 : 함수3 - 자가진단6  (0) 2021.12.30
590 : 함수3 - 자가진단5  (0) 2021.12.30
589 : 함수3 - 자가진단3  (0) 2021.12.30
미로탈출 - 파이썬  (0) 2021.02.04
음료수 얼려먹기 - 파이썬  (0) 2021.02.04

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=226&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단3

int rec(int sum, int n){

    if(n==0)
        return sum;
    sum += n;
    rec(sum, n-1);
}
int main() {
    int n;
    cin >> n;

    printf("%d",rec(0, n));
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

590 : 함수3 - 자가진단5  (0) 2021.12.30
592 : 함수3 - 자가진단4  (0) 2021.12.30
미로탈출 - 파이썬  (0) 2021.02.04
음료수 얼려먹기 - 파이썬  (0) 2021.02.04
BFS - 파이썬  (0) 2021.02.04

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=225&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단2

void rec(int n){

    if(n==0)
        return;
    printf("%d\n", n);
    rec(n-1);
}
int main() {
    int n;
    cin >> n;
    rec(n);
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
//함수3 - 자가진단1

void rec(int n){

    if(n==0)
        return;
    printf("recursive\n");
    rec(n-1);
}
int main() {
    int n=3;
    rec(3);
    return 0;
}

 

https://www.acmicpc.net/problem/17619

 

17619번: 개구리 점프

첫 번째 줄에 통나무 개수 N과 질문의 개수 Q가 주어진다. 다음 N개의 줄에 각 통나무에 x1, x2, y의 세 정수 좌표가 주어진다. 주어진 통나무는 두 점 (x1, y)와 (x2, y)를 잇는 형태이다. (x1 < x2) 모든 좌표는 0이상 109이하이다. 통나무들은 주어진 순서대로 1번부터 번호가 붙어 있다. 서로 다른 두 통나무는 (끝점에서도) 만나지 않는다. 다음 Q개의 줄에 서로 다른 두 통나무의 번호가 주어진다. (1 ≤ N ≤ 100,00

www.acmicpc.net

 

 

 

#include<bits/stdc++.h>

using namespace std;

typedef struct wood
{
	int x1, x2, y;
	int num;
}wd;


bool cmp(wd a, wd b)
{
	return a.x1 < b.x1;
}

int main(void)
{
	int n,q;
	int qus_1, qus_2;
	int now_group = 1;
	int group[100] = {0,};
	int max_x2=0;
	scanf("%d %d", &n, &q);

	vector<wd> v;
	wd temp;

	for(int i=1; i<=n; i++)	//입력.
	{
		temp.num = i;
		scanf("%d %d %d", &temp.x1, &temp.x2, &temp.y);
		v.push_back(temp);
	}

	sort(v.begin(), v.end(), cmp);	//x1의 순서로 정렬.

	for(int i=0; i<n; i++)
	{
	    group[v[i].num] = now_group;
        max_x2=v[i].x2;

        if(i==n-1)
        {
            break;
        }

        for(int j = i+1; max_x2>=v[j].x1; j++)
        {
            printf("=1.1= %d : %d\n", max_x2, v[j].x1);
            if(v[j].x2 > max_x2)
            {
                max_x2 = v[j].x2;
            }

            group[v[j].num] = now_group;
            i++;
            printf("=1.2= %d : %d\n", max_x2, v[j].x1);
        }
        now_group++;
	}



	for(int i = 0; i<=n; i++)
	{
		printf("=2=%d : %d\n", i, group[i]);
	}

	for(int i=0; i<q; i++)
	{
		scanf("%d %d", &qus_1, &qus_2);
		if(group[qus_1] == group[qus_2])	//같은 그룹이면 연결되어있다.
		{
			printf("1\n");
		}
		else
		{
			printf("0\n");
		}
	}

	return 0;
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=87&sca=10e0

 

JUNGOL | 문자열1 - 형성평가6 > 문제은행

문자열(100자 이하)을 입력받은 후 정수를 입력받아 해당위치의 문자를 제거하고 출력하는 작업을 반복하다가 문자 1개가 남으면 종료하는 프로그램을 작성하시오. 첫 번째 문자의 위치는 1이며 만약 입력받은 번호가 문자열의 길이 이상이면 마지막 문자를 제거한다. * 입출력예에서 진한글씨가 출력

www.jungol.co.kr

 

 

//문자열 1 : 형성평가 6
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char in[100];
    char temp[100];
    int n = 0;

    gets(in);
    while(strlen(in) != 1){
        scanf("%d", &n);
        if(n > strlen(in)){
            in[strlen(in)-1] = NULL;
        }
        else{
            int j = 0;
            for(int i = 0; i <= strlen(in); i++){
                if(i+1 != n)    temp[j++] = in[i];
            }
            strcpy(in, temp);
        }

        printf("%s \n", in);

    }
}

https://www.acmicpc.net/problem/17619

 

17619번: 개구리 점프

첫 번째 줄에 통나무 개수 N과 질문의 개수 Q가 주어진다. 다음 N개의 줄에 각 통나무에 x1, x2, y의 세 정수 좌표가 주어진다. 주어진 통나무는 두 점 (x1, y)와 (x2, y)를 잇는 형태이다. (x1 < x2) 모든 좌표는 0이상 109이하이다. 통나무들은 주어진 순서대로 1번부터 번호가 붙어 있다. 서로 다른 두 통나무는 (끝점에서도) 만나지 않는다. 다음 Q개의 줄에 서로 다른 두 통나무의 번호가 주어진다. (1 ≤ N ≤ 100,00

www.acmicpc.net

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//2019 정올 2차 2번 문제 (중등)
struct s{
    int a,b,pos;
};
bool compare(struct s x,struct s y)
{
    //return x.a<y.a;

    if(x.a<y.a)
        return true;
    return false;
}
int main()
{
    int m,n,i,j,y,r1[1000000]={0,},r2[1000000]={0,},max1,k=0,t=0,z=0,flag=0;
    int g2[1000000];
    struct s log[1000000];
    scanf("%d %d",&m,&n);
    for(i=0;i<m;i++){
        scanf("%d %d %d",&log[i].a,&log[i].b,&y);
        log[i].pos=i+1;
        g2[log[i].pos] = log[i].pos;
    }

    for(i=0;i<n;i++)
        scanf("%d %d",&r1[i],&r2[i]);
    sort(log,log+m,compare);
    while(1)
    {
        max1=log[t].b;
        
        int group = g2[log[t].pos];
        for(i=t;i<m-1;i++)
        {
            if(log[i+1].a<=max1)
            {
                
                g2[log[i+1].pos] = group;
                if(log[i+1].b>max1)
                    max1=log[i+1].b;
            }
            else
                break;
        }
        t=i+1;
        k++;
        z=0;
        if(t>=m)
            break;
    }


    for(t=0;t<n;t++)
    {
        if(g2[r1[t]] == g2[r2[t]]) puts("1");
        else puts("0");
    }
    return 0;
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=134&sca=10d0

 

JUNGOL | 함수3 - 형성평가4 > 문제은행

첫 번째는 1, 두 번째는 2, 세 번째부터는 앞의 두 수의 곱을 100으로 나눈 나머지로 이루어진 수열이 있다. 100 이하의 자연수 N을 입력받아 재귀함수를 이용하여 N번째 값을 출력하는 프로그램을 작성하시오.

www.jungol.co.kr

 

#include<bits/stdc++.h>
using namespace std;
/*함수3 - 형성평가4
첫 번째는 1, 두 번째는 2, 세 번째부터는 앞의 두 수의 곱을 100으로 나눈 나머지로 이루어진 수열이 있다.
100 이하의 자연수 N을 입력받아 재귀함수를 이용하여 N번째 값을 출력하는 프로그램을 작성하시오.
입력 예
8
출력 예
92
*/
int d[1004];
int f(int n)
{
    int result;
    if(n==1) return 1;
    if(n==2) return 2;
    if(d[n]>0){
        return d[n];
    }
    else{
        d[n] = (f(n-1)*f(n-2))%100;
        return d[n];
    }
}

int main()
{
    int n,k;
    scanf("%d",&n);
    k=f(n);
    printf("%d",k);
	return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

586 : 함수2 - 자가진단8  (0) 2020.03.01
233 : 함수3 - 형성평가3  (0) 2020.03.01
589 : 함수3 - 자가진단3  (0) 2020.02.16
590 : 함수3 - 자가진단4  (0) 2020.02.16
591 : 함수3 - 자가진단5  (0) 2020.02.16

+ Recent posts