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

 

JUNGOL | 문자열2 - 자가진단7 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

 

#include<bits/stdc++.h>
int main()
{
    char s[100];
    int c,l,i,c2;
    gets(s);
    l=strlen(s);
    c=0; c2=0;
    for(i=0; i<l; i++){
        if(s[i]=='c')c=1;
        if(s[i]=='a' && s[i+1]=='b')c2=1;
    }
    if(c==1)printf("yes");
    if(c==0)printf("no");
    if(c2==1)printf("yes");
    if(c2==0)printf("no");
	return 0;
}

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

 

JUNGOL | 문자열2 - 자가진단8 > 문제은행

세 개의 단어를 입력받아 아스키코드(사전) 순으로 가장 먼저 나오는 단어를 출력하는 프로그램을 작성하시오. 각 단어의 길이는 1이상 10 이하이다.

www.jungol.co.kr

 

 

#include<bits/stdc++.h>
using namespace std;
/*
609 : 문자열2 - 자가진단8
세 개의 단어를 입력받아 아스키코드(사전) 순으로 가장 먼저 나오는 단어를 출력하는 프로그램을 작성하시오.
각 단어의 길이는 1이상 10 이하이다.
입력 예
cat dog cow
출력 예
cat
*/

int main()
{
    vector<string> v;
    char a[104][104];
    int i,k=0;
    for(i=0; i<3; i++){
        string st;
        cin >> st;
        v.push_back(st);
    }

    for(i=0; i<v.size(); i++){
        if(v[i] < v[k]){
            k=i;
        }
    }
    cout << v[k];

    sort(v.begin(),v.end());
    cout << v[0];
	return 0;
}

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

 

JUNGOL | 문자열2 - 자가진단9 > 문제은행

5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오. 주어지는 문자열의 길이는 20자 미만이다.

www.jungol.co.kr

 

#include<bits/stdc++.h>
using namespace std;
/*
610 : 문자열2 - 자가진단9
5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오.
주어지는 문자열의 길이는 20자 미만이다.
입력 예
Jungol
Korea
information
Monitor
class
출력 예
information
class
Monitor
Korea
Jungol
*/

int main()
{
    int i,j;
    char t[104],a[104][104];
    for(i=0; i<5; i++){
        scanf("%s",a[i]);
    }
    //sort(a,a+5);

    for(i=0; i<5; i++){
        for(j=0; j<5; j++){
            if(strcmp(a[i],a[j])>0){
                strcpy(t,a[i]);
                strcpy(a[i],a[j]);
                strcpy(a[j],t);
            }
        }
    }

    for(i=0; i<5; i++){
        printf("%s\n",a[i]);
    }
	return 0;
}

 

 

#include<bits/stdc++.h>
using namespace std;
/*
610 : 문자열2 - 자가진단9
5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오.
주어지는 문자열의 길이는 20자 미만이다.
입력 예
Jungol
Korea
information
Monitor
class
출력 예
information
class
Monitor
Korea
Jungol
*/
bool com(string a, string b)
{
    return a>b;
}
int main()
{
    int i,j;
    vector <string> v;
    char t[104],a[104][104];
    for(i=0; i<5; i++){
        cin >> a[i];
        string s(a[i]);
        v.push_back(s);
    }

    sort(v.begin(),v.end(),com);

    for(i=0; i<5; i++){
        cout << v[i] << "\n" ;
    }

	return 0;
}

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

 

JUNGOL | 구조체 - 자가진단6 > 문제은행

5명의 이름과 키, 몸무게를 입력받아 이름순으로 정렬하여 출력하고,  몸무게가 무거운 순으로 정렬하여 출력하는 프로그램을 작성하시오.  몸무게는 소수점이하 1자리까지 출력한다.

www.jungol.co.kr

 

 

#include<bits/stdc++.h>
using namespace std;
/*
618 : 구조체 - 자가진단6
5명의 이름과 키, 몸무게를 입력받아 이름순으로 정렬하여 출력하고,
몸무게가 무거운 순으로 정렬하여 출력하는 프로그램을 작성하시오.
몸무게는 소수점이하 1자리까지 출력한다.

입력 예
Lee 150 35.6
Kim 155 28.9
Sin 148 32.7
Jung 160 41.2
Park 165 38.7
출력 예
name
Jung 160 41.2
Kim 155 28.9
Lee 150 35.6
Park 165 38.7
Sin 148 32.7

weight
Jung 160 41.2
Park 165 38.7
Lee 150 35.6
Sin 148 32.7
Kim 155 28.9
*/


struct students
{
    char irum[10];
    int kee;
    float mugae;
};

bool compare(struct students a ,struct students b){
    return a.mugae<b.mugae;
}

bool compare2(struct students a ,struct students b){
    //????
    return strcmp(a.irum, b.irum) < 0;
}

int main()
{

    int i;
    struct students s[5];
    for(i=0; i<5; i++){
        scanf("%s %d %f",s[i].irum,&s[i].kee,&s[i].mugae);
    }
    sort(s,s+5,compare2);
    for(i=0; i<5; i++){
        printf("=name= %s %d %g\n",s[i].irum,s[i].kee,s[i].mugae);
    }

    sort(s,s+5,compare);
    for(i=0; i<5; i++){
        printf("=mugae= %s %d %g\n",s[i].irum,s[i].kee,s[i].mugae);
    }


	return 0;
}

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

 

JUNGOL | 구조체 - 자가진단3 > 문제은행

두 명의 이름과 국어, 영어 점수를 입력받아 과목별 점수의 평균을 구하여 출력하는 프로그램을 작성해 보시오. (이름은 20자 이하이고 평균의 소수점 이하는 버림한다.)

www.jungol.co.kr

 

 

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
/*
615 : 구조체 - 자가진단3
두 명의 이름과 국어, 영어 점수를 입력받아 과목별 점수의 평균을 구하여 출력하는 프로그램을 작성해 보시오.
(이름은 20자 이하이고 평균의 소수점 이하는 버림한다.)
입력 예
Junho 88 100
Seonbin 95 96
출력 예
Junho 88 100
Seonbin 95 96
avg 91 98
*/
typedef struct s{
    int num;
    char name[10],sub[10];
    int score[100];
}Student;

int main()
{
    int m[12],n,i,p=0,q=0;
    //struct s stu[100];
    Student stu[100];
    for(i=1;i<=2;i++)
    {
        scanf("%s %d %d",stu[i].name,&stu[i].score[0],&stu[i].score[1]);
    }
    for(i=1;i<=2;i++)
    {
        printf("%s %d %d\n",stu[i].name,stu[i].score[0],stu[i].score[1]);
    }
    for(i=1;i<=2;i++)
    {
        p+=stu[i].score[0];
        q+=stu[i].score[1];
    }
    printf("avg %d %d",p/2,q/2);
    return 0;
}

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

 

JUNGOL | 구조체 - 자가진단5 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

 

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
/*
617 : 구조체 - 자가진단5
5명의 이름과 키를 입력받아 키가 가장 작은 사람의 이름과 키를 출력하는 프로그램을 작성하시오. 이름은 20자 이하이다.
입력 예
Park 175
Lee 180
Choo 185
Son 193
Kim 188
출력 예
Park 175
*/
typedef struct s{
    int num;
    char name[10],sub[10];
    int score[100];
}Student;

int main()
{
    int m[12],n=5,i,p=0,q=99990;
    //struct s stu[100];
    Student stu[100];
    //scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s %d",stu[i].name,&stu[i].num);
    }
    for(i=0;i<n;i++)
    {
        if(q>stu[i].num){
            q=stu[i].num;
            p=i;
        }

    }
    printf("%s %d",stu[p].name,stu[p].num);
    return 0;
}

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

 

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

두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오. 단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다. 두 수의 제곱근을 구하여 정수로 형변환을 한 후 생각해보자. 두 수 사이의 수들은 모두 포함이 되면 작은 수의 경우 변환하기 전 원래의 제곱근과 같다면 개수에 포함을 시켜야 한다. 큰 수는 원래의 수보다 작거나 같으므로 무조건 포함이 된다.

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가2
두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.
단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.
입력 예
12.0 34.789
출력 예
2
*/


int main()
{
    float a,b,c,d;
    int o,n,z=0;
    scanf("%f %f",&a,&b);

    c=sqrt(a);
    d=sqrt(b);

    if(c>d){
        o=(int)floor(c);
        n=(int)ceil(d);
        printf("o = %d n = %d \n", o, n);
        for(int i=n;i<=o;i++){
            z ++;
        }
    }

    if(c<d){
        o=(int)ceil(c);
        n=(int)floor(d);
        printf("o = %d n = %d \n", o, n);
        for(int i=o;i<=n;i++){
            z ++;
        }
    }

    printf("1 : %d\n",z);
    printf("2 : %d",abs(o-n) + 1);


    return 0;
}

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

 

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

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가3
5개의 정수를 입력받아 각 정수의 절대값의 합을 출력하는 프로그램을 작성하시오.
입력 예
35 -20 10 0 55
출력 예
120
*/


int main()
{
    int a,n=0;
    for(int i=0;i<5;i++){
        scanf("%d",&a);
        n= n + abs(a);
    }
    printf("%d",n);
    return 0;
}

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

617 : 구조체 - 자가진단5  (0) 2020.03.11
176 : 함수2 - 형성평가2  (0) 2020.03.09
178 : 함수2 - 형성평가4  (0) 2020.03.09
179 : 함수2 - 형성평가5  (0) 2020.03.09
234 : 함수3 - 형성평가4  (0) 2020.03.01

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

 

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

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가4
정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
*/

int main()
{
    int n,x=1;
    scanf("%d",&n);

    /*
    for(int i=0;i<n;i++){
        x=x*2;
    }*/

    x = pow(2,n);

    printf("%d",x);
    return 0;
}

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

176 : 함수2 - 형성평가2  (0) 2020.03.09
177 : 함수2 - 형성평가3  (0) 2020.03.09
179 : 함수2 - 형성평가5  (0) 2020.03.09
234 : 함수3 - 형성평가4  (0) 2020.03.01
235 : 함수3 - 형성평가5  (0) 2020.03.01

 

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

 

JUNGOL | 문자열1 - 자가진단6 > 문제은행

문자를 입력받아 알파벳 문자인 경우에는 그대로 출력하고 숫자인 경우는 아스키코드값을 출력하는 작업을 반복하다가 기타의 문자가 입력되면 종료하는 프로그램을 작성하시오. * 입출력예에서 진한글씨가 출력

www.jungol.co.kr

 

#include 
#include <bits/stdc++.h>
using namespace std;
/*
문자를 입력받아 알파벳 문자인 경우에는 그대로 출력하고 숫자인 경우는
아스키코드값을 출력하는 작업을 반복하다가 기타의 문자가 입력되면 종료하는 프로그램을 작성하시오.

* 입출력예에서 진한글씨가 출력
입·출력 예
A
A
1
49
@
*/
int main()
{
    char a;
    do{
        scanf(" %c",&a);
        if(a>='A' && a<='Z')
            printf("%c",a);
        else if(a>='0' &&a<='9')
            printf("%d",a);
        else
            return 0;
    }while(1);
}

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

234 : 함수3 - 형성평가4  (0) 2020.03.01
235 : 함수3 - 형성평가5  (0) 2020.03.01
599 : 문자열1 - 자가진단7  (0) 2020.03.01
582 : 함수2 - 자가진단4  (0) 2020.03.01
83 : 함수2 - 자가진단5  (0) 2020.03.01

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

 

JUNGOL | 문자열1 - 자가진단7 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

 

 

#include 
#include <bits/stdc++.h>
using namespace std;
/*
문자열을 입력받아 알파벳 문자만 모두 대문자로 출력하는 프로그램을 작성하시오.
문자열의 길이는 100이하이다.
입력 예
1988-Seoul-Olympic!!!
출력 예
SEOULOLYMPIC
*/
int main()
{
    char a[100]={0,};
    int i;
    scanf("%s",a);
    for(i=1;a[i]!=NULL;i++)
    {
        if(a[i]>='A' && a[i]<='Z')
            printf("%c",a[i]);
        else if(a[i]>='a' && a[i]<='z')
            printf("%c",a[i]-('a'-'A'));
    }
}

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

235 : 함수3 - 형성평가5  (0) 2020.03.01
598 : 문자열1 - 자가진단6  (0) 2020.03.01
582 : 함수2 - 자가진단4  (0) 2020.03.01
83 : 함수2 - 자가진단5  (0) 2020.03.01
584 : 함수2 - 자가진단6  (0) 2020.03.01

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

 

1654번: 랜선 자르기

첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 후 K줄에 걸쳐 이미 가지고 있는 각 랜선의 길이가 센티미터 단위의 정수로 입력된다. 랜선의 길이는 231-1보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 

#include<stdio.h>

long long k;
long long Lan[20000];   //원소는 초기화 됨. 

long long div(long long len)   //len로 자르기. 
{
   long long sum = 0;
   
   for(int i=0; i<k; i++)
   {
      sum += (Lan[i]/len);
   }
   
   return sum;
}

int main(void)
{   
   long long n;
   long long max = 0;
   scanf("%lld %lld", &k, &n);
   
   for(int i=0; i<k; i++)
   {
      scanf("%lld", &Lan[i]);
      
      if(max<Lan[i])
      {
         max = Lan[i];   //최대 원소값 찾기 
      }
   }
   
   long long s = 1;
   long long e = max;   //mid의 범위를 1~최대 원소값까지로 고정. 
   long long mid;
   long long res; 
   long long res2 = -1; 

   
   while(s<=e)
   {
      mid = (s+e)/2;
      
      res = div(mid);   //res는 조각의 개수. 
      //
      if(res >= n)
      {
        if(res2 < mid) {
          res2 = mid;
        }
         s=mid+1;
      }
      
      else
      {
         e=mid-1;
      }
   }
   
   printf("%lld\n", res2);
   
   return 0;
}

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

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이수도 -10,00

www.acmicpc.net

upper bound와 lower bound을 구해서, "upper bound - lower bound" 하면 해당 검색 값의 개수를 구할 수 있다.

 

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

int main()
{
    int n,m,a[1000000]={0,},b[1000000]={0,},i,j,l,r,mid,cnt1=0,cnt2=0;
    scanf("%d",&m);

    for(i=0;i<m;i++)
        scanf("%d",&a[i]);
    scanf("%d",&n);
    for(j=0;j<n;j++)
        scanf("%d",&b[j]);

    //printf("222\n");
    sort(a,a+m);

    //printf("3333\n");
    l=0,r=m-1;
    for(j=0;j<n;j++)
    {
        //lower bound
        int lans = 0;
        while(l<=r)
        {
            mid=(l+r)/2;
            if(a[mid]==b[j])
            {
                lans = mid;
                r = mid-1;
            }
            else if(a[mid]>b[j])
                r=mid-1;
            else l=mid+1;

        }
        l=0,r=m-1;
        int uans = 0;
        while(l<=r)
        {
            mid=(l+r)/2;
            if(a[mid]==b[j])
            {
                uans = mid+1;
                l = mid+1;
            }
            else if(a[mid]>b[j])
                r=mid-1;
            else l=mid+1;

        }

        //if(l>r) printf("0 ");
        l=0,r=m-1;
        printf("%d ", uans-lans);
    }

    return 0;
}

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

부분수열의 합 - 1182  (0) 2020.03.01
랜선 자르기 1654번  (0) 2020.03.01
백준 - 숫자카드 : 10815번  (0) 2020.02.10
백준 : 1로 만들기 1463번  (0) 2020.02.09
백준 - 차이를 최대로 : 10819번  (0) 2020.02.09

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

 

JUNGOL | 함수3 - 자가진단3 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

#include<stdio.h>
int k=0,c=1;
int f(int p)
{
	k=k+c;
	if(c==p)return k;
	c++;
	f(p);
}
int main()
{
	int n,x;
	scanf("%d",&n);
	x=f(n);
	printf("%d ",x);
	return 0;
}

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

233 : 함수3 - 형성평가3  (0) 2020.03.01
234 : 함수3 - 형성평가4  (0) 2020.03.01
590 : 함수3 - 자가진단4  (0) 2020.02.16
591 : 함수3 - 자가진단5  (0) 2020.02.16
598 : 문자열1 - 자가진단6  (0) 2020.02.16

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

 

JUNGOL | 함수3 - 자가진단4 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

#include<bits/stdc++.h>
using namespace std;
vector<int> v;
void f(int n, int c)
{
	int i;
	if(v.size()==n){
		for(i=0; i<n; i++){
			printf("%d ",v[i]);
		}
		printf("\n");
		return;
	}
	for(i=c; i<=6; i++){
		v.push_back(i);
		f(n,i);
		v.pop_back();
	}
}
int main()
{
	int n;
	scanf("%d",&n);
	f(n,1);
	return 0;
}

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

234 : 함수3 - 형성평가4  (0) 2020.03.01
589 : 함수3 - 자가진단3  (0) 2020.02.16
591 : 함수3 - 자가진단5  (0) 2020.02.16
598 : 문자열1 - 자가진단6  (0) 2020.02.16
231 : 함수3 - 형성평가1  (0) 2020.02.16

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

 

JUNGOL | 함수3 - 자가진단5 > 문제은행

첫 번째 수는 1이고 N번째 수는 (N/2)번째 수(파이썬인경우 N//2번째)와 (N-1)번째 수의 합으로 구성된 수열이 있다. 50 이하의 자연수 N을 입력받아 재귀호출을 이용하여 이 수열에서 N번째 수를 출력하는 프로그램을 작성하시오. (1 2 3 5 7 10 13 18 …)

www.jungol.co.kr

#include<bits/stdc++.h>
int f(int p)
{
	if(p==1)return 1;
	return f(p/2)+f(p-1);
}
int main()
{
	int i,k,n;
	scanf("%d",&n);
	k=f(n);
	printf("%d\n",k);
	return 0;
}

위 코드는 입력 값 n이 커지면, 상당히 느려진다.

그래서 아래와 같이 메모이제이션을 적용하였다.

 

#include<bits/stdc++.h>
int c[1004]={0,};
int f(int p)
{
	if(p==1){
		return 1;
	}
	else if(c[p]!=0){
		return c[p];
	}
	else{
		c[p]=f(p/2)+f(p-1);
	    return c[p];
	}
}
int main()
{
	int i,k,n;
	scanf("%d",&n);
	k=f(n);
	printf("%d\n",k);
	return 0;
}

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

589 : 함수3 - 자가진단3  (0) 2020.02.16
590 : 함수3 - 자가진단4  (0) 2020.02.16
598 : 문자열1 - 자가진단6  (0) 2020.02.16
231 : 함수3 - 형성평가1  (0) 2020.02.16
232 : 함수3 - 형성평가2  (0) 2020.02.16

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

 

JUNGOL | 문자열1 - 자가진단6 > 문제은행

문자를 입력받아 알파벳 문자인 경우에는 그대로 출력하고 숫자인 경우는 아스키코드값을 출력하는 작업을 반복하다가 기타의 문자가 입력되면 종료하는 프로그램을 작성하시오. * 입출력예에서 진한글씨가 출력

www.jungol.co.kr

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

int main()
{
    char n;
    while(1){
        scanf(" %c",&n);
        if(n>='A' && n<='Z'){
            printf("%c \n",n);
        }
        else if(n>='1' && n<='9'){
            printf("%d \n",n);
        }
        else break;
    }
	return 0;
}

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

590 : 함수3 - 자가진단4  (0) 2020.02.16
591 : 함수3 - 자가진단5  (0) 2020.02.16
231 : 함수3 - 형성평가1  (0) 2020.02.16
232 : 함수3 - 형성평가2  (0) 2020.02.16
579 : 함수2 - 자가진단1  (0) 2020.02.16

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

 

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

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;
/*
함수3 - 형성평가1
자연수 N을 입력받아 1부터 N까지 출력을 하되 n-1번째 값은 n번째 값을 2로 나눈 몫이 되도록 하는 프로그램을 작성하시오.
*/
void f(int n){
    if(n == 0) return;
    f(n/2);
    printf("%d ", n);
}

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

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

591 : 함수3 - 자가진단5  (0) 2020.02.16
598 : 문자열1 - 자가진단6  (0) 2020.02.16
232 : 함수3 - 형성평가2  (0) 2020.02.16
579 : 함수2 - 자가진단1  (0) 2020.02.16
174 : 함수1 - 형성평가5  (0) 2020.02.16

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

 

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

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

 

#include <bits/stdc++.h>
using namespace std;
/*
함수3 - 형성평가2
자연수 N을 입력받아 N이 홀수인 경우에는 1부터 N까지의 홀수를  짝수인 경우는 2부터 N까지의 짝수를 모두 출력하는 프로그램을 재귀함수로 작성하시오.
*/
void f(int n){
    if(n == 1 || n == 2){
        printf("%d ", n);
        return;
    }
    f(n-2);
    printf("%d ", n);
}

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


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

598 : 문자열1 - 자가진단6  (0) 2020.02.16
231 : 함수3 - 형성평가1  (0) 2020.02.16
579 : 함수2 - 자가진단1  (0) 2020.02.16
174 : 함수1 - 형성평가5  (0) 2020.02.16
173 : 함수1 - 형성평가4  (0) 2020.02.16

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

 

JUNGOL | 함수2 - 자가진단1 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

선택 정렬 사용해서 풀기,

가장 작은 값을 찾아서, 제일 오른쪽 끝으로 옮기는 방식으로 해결

 

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

void f(int a[], int n){ //int *b
    //내림차순

    int min;
    for(int i=0;i<n;i++)
    {
        min = 99;
        int min_idx = 0;
        for(int j=0;j<n-i;j++){
          if(min>a[j]){
            min=a[j];
            min_idx = j;
          }
        }
        int temp= a[min_idx];
        a[min_idx] = a[n-i-1];
        a[n-i-1] = temp;
    }
}

int main()
{
    int a[10];
    int n;
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }

    f(a, n);  //배열의 이름은 배열의 시작 주소다.ㅁ

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

    return 0;
}

 

위 코드에서  swap() 함수를 사용한 것으로 개선

https://en.cppreference.com/w/cpp/algorithm/swap

불러오는 중입니다...
#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 자가진단1
*/

void f(int a[], int n){ //int *b
    //내림차순

    int min;
    for(int i=0;i<n;i++)
    {
        min = 99;
        int min_idx = 0;
        for(int j=0;j<n-i;j++){
          if(min>a[j]){
            min=a[j];
            min_idx = j;
          }
        }
        /*
        int temp= a[min_idx];
        a[min_idx] = a[n-i-1];
        a[n-i-1] = temp;
        */
        swap(a[min_idx], a[n-i-1]);

    }
}

int main()
{
    int a[10];
    int n;
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }

    f(a, n);  //배열의 이름은 배열의 시작 주소다.ㅁ

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

    return 0;
}

 

 

선택 정렬 사용해서 풀기 2,

가장 큰 값을 찾아서, 제일 왼쪽 끝으로 옮기는 방식으로 해결

 

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

void f(int a[], int n){ //int *b
    //내림차순

    int max;
    for(int i=0;i<n;i++)
    {
        max = -1000;
        int max_idx = 0;
        for(int j=i;j<n;j++){
          if(max<a[j]){
            max=a[j];
            max_idx = j;
          }
        }
        /*
        int temp= a[min_idx];
        a[min_idx] = a[n-i-1];
        a[n-i-1] = temp;
        */
        swap(a[max_idx], a[i]);

    }
}

int main()
{
    int a[10];
    int n;
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }

    f(a, n);  //배열의 이름은 배열의 시작 주소다.ㅁ

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

    return 0;
}

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

231 : 함수3 - 형성평가1  (0) 2020.02.16
232 : 함수3 - 형성평가2  (0) 2020.02.16
174 : 함수1 - 형성평가5  (0) 2020.02.16
173 : 함수1 - 형성평가4  (0) 2020.02.16
172 : 함수1 - 형성평가3  (0) 2020.02.16

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

 

JUNGOL | 함수1 - 형성평가5 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가4
*/

void f(void){
    int n;
    int a,b,c;
    for(int i=0;i<3;i++){
        //for(int j=0;j<3;j++){
            scanf("%d %d %d",&a,&b,&c);
            n=a+b+c;
            printf("%d %d %d %d \n",a,b,c,n);
        //}
        printf("\n");
    }
}

int main()
{


    f();

    return 0;
}

 

2번째 방법

3과목 점수도  for문을 사용해서 입력 받기

 

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가4
*/

void f(void){
    int n=0;
    int a,b,c;
    for(int i=0;i<3;i++){
        n=0;
        for(int j=0;j<3;j++){
            scanf("%d",&a);
            printf("%d-",a);
            n+=a;
        }

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

    }
}

int main()
{


    f();

    return 0;
}

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

232 : 함수3 - 형성평가2  (0) 2020.02.16
579 : 함수2 - 자가진단1  (0) 2020.02.16
173 : 함수1 - 형성평가4  (0) 2020.02.16
172 : 함수1 - 형성평가3  (0) 2020.02.16
함수3 - 자가진단2  (0) 2020.02.09

+ Recent posts