#include <bits/stdc++.h>
using namespace std;
//퀵정렬 : 내림차순

void quick(int data[], int left, int right){

    int num, i, j, temp;
    if(right > left){
        num = data[right];
        i = left - 1;
        j = right;

        for(;;){
            while(data[++i] > num);
            while(data[--j] < num);
            if(i >= j)
                break;

            swap(data[i], data[j]);
        }
        swap(data[i], data[right]);

        quick(data, left, i-1);
        quick(data, i+1, right);
    }
}
int main() {

    int a[10] = {2,3,4,0,9,8,7,6,5,1};
    for(auto x : a){
        printf("%d ", x);
    }
    puts("\n");
    quick(a, 0, 9);
    for(auto x : a){
        printf("%d ", x);
    }
    return 0;
}

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

머지 정렬 Merge Sort  (0) 2021.12.31
머지 정렬 Merge Sort  (0) 2021.12.31
함수3 - 형성평가6  (0) 2021.12.30
591 : 함수3 - 자가진단6  (0) 2021.12.30
590 : 함수3 - 자가진단5  (0) 2021.12.30

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=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;
}

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=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

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

 

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

두 개의 음이 아닌 정수를 입력받아 큰 수의 제곱에서 작은 수의 제곱을 뺀 결과값을  출력하는 프로그램을 작성하시오. (두 정수를 전달받아 제곱의 차를 리턴하는 함수를 이용할 것)

www.jungol.co.kr

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

int f(int a,int b){
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

 

 

abs()함수 사용을 개선

https://en.cppreference.com/w/cpp/numeric/math/abs

 

std::abs, std::labs, std::llabs, std::imaxabs - cppreference.com

int       abs( int n ); long      abs( long n ); long long abs( long long n ); (since C++11) long       labs( long n ); long long llabs( long long n ); (since C++11) (since C++11) (since C++11) Computes the absolute value of an integer number. The behavior

en.cppreference.com

 

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

int f(int a,int b){
    /*
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
    */
    return abs((a*a)-(b*b));

}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

 

 

pow()함수 사용을 추가 개선

https://en.cppreference.com/w/cpp/numeric/math/pow

 

std::pow, std::powf, std::powl - cppreference.com

(1) float       pow ( float base, float exp ); float       powf( float base, float exp ); (since C++11) double      pow ( double base, double exp ); (2) (3) long double pow ( long double base, long double exp ); long double powl( long double base, long dou

en.cppreference.com

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

int f(int a,int b){
    /*
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
    */
    return abs(pow(a,2)-pow(b,2));

}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

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

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

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

 

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

자연수를 입력받아 아래와 같은 사각형을 출력하는 프로그램을 작성하시오. 주어지는 수는 100이하의 자연수이다. (함수를 작성하시오.)

www.jungol.co.kr

 

 

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

void f(int n){
    int i,j;
    for(i=1;i<=n;i++){
        for(j=i;j<=i*n;j=j+i){
            printf("%3d ",j);
        }
        printf("\n");
    }
}

int main()
{
    int i,j, n;

    scanf("%d",&n);

    f(n);
    return 0;
}

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

174 : 함수1 - 형성평가5  (0) 2020.02.16
173 : 함수1 - 형성평가4  (0) 2020.02.16
함수3 - 자가진단2  (0) 2020.02.09
함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09

 

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
*/

void f(int a[])
{
    int i,c=0;
    for(i=1; i<=5; i++){
        c=c+abs(a[i]);
    }
    printf("%d",c);
}

int main()
{
    int i,a[1004];
    for(i=1; i<=5; i++){
        scanf("%d",&a[i]);
    }
    f(a);
    return 0;
}

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

함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09
함수2 - 형성평가6  (0) 2020.02.09
함수2 - 형성평가5  (0) 2020.02.09
함수2 - 형성평가4  (0) 2020.02.09

+ Recent posts