모든 계절애는

꽃향기가 난다네

 

그런데 겨울에만 안

난다네

 

겨울은 꽃의 죽음날

꽃들이 불쌍하네

'일상 > 승빈이 시' 카테고리의 다른 글

사계절  (0) 2022.02.14
반딧불이  (0) 2022.02.14
  (0) 2022.02.11
  (0) 2022.02.11
  (0) 2022.02.11

창밖을보니 눈이 네리네

 

옷을갈아압고 나가보니

눈이 수북히 쌓여있네

 

'천국인가'라고 생각하네

'일상 > 승빈이 시' 카테고리의 다른 글

사계절  (0) 2022.02.14
반딧불이  (0) 2022.02.14
  (0) 2022.02.11
  (0) 2022.02.11
  (0) 2022.02.11

이슬비가 우산 위에 떨어지네
톡톡톡 

소나기가 우산 위에 떨어지네
툭툭툭

빗소리를 들으니 잠이 솔솔 오네

'일상 > 승빈이 시' 카테고리의 다른 글

사계절  (0) 2022.02.14
반딧불이  (0) 2022.02.14
  (0) 2022.02.11
  (0) 2022.02.11
  (0) 2022.02.11

한 번은 롤러코스터

어질어질

 

한 번은 사우나

뜨끈뜨끈

 

한 번은 시베리아

오들오들

 

병에 걸리면 

참 다양한 곳에 가네    

'일상 > 승빈이 시' 카테고리의 다른 글

사계절  (0) 2022.02.14
반딧불이  (0) 2022.02.14
  (0) 2022.02.11
  (0) 2022.02.11
  (0) 2022.02.11

 

YT 구현

 

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

int cal(int sum, int n){
    if(n==0){
        return sum;
    }

    if(n%10 != 0) sum *= n%10;

    return cal(sum, n/10);
}

int main(){
    int a,b,c;
    scanf("%d %d %d",&a, &b, &c);
    printf("%d", cal(1, a*b*c));
    return 0;
}

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

함수 3 형성평가4 rev2  (0) 2022.02.06
함수 3 형성평가4 rev.1  (0) 2022.02.06
함수 3 형성평가3  (0) 2022.02.06
함수 3 형성평가2  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01

 

HW 구현

 

#include <bits/stdc++.h>
using namespace std;
//함수 3 형성평가4 rev2
int d[100];
int cal(int n){
    if(n == 1 || n == 2){
        return n;
    }
    if(d[n] != 0) return d[n];
    d[n] = (cal(n-1) * cal(n-2))%100;
    return d[n];
}
int main(){
    int n;
    scanf("%d",&n);
    printf("%d", cal(n));
    return 0;
}

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

함수 3 형성평가6  (0) 2022.02.06
함수 3 형성평가4 rev.1  (0) 2022.02.06
함수 3 형성평가3  (0) 2022.02.06
함수 3 형성평가2  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01

JW 구현

 

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

int cal(int n){
    if(n == 1 || n == 2){
        return n;
    }
    int a = (cal(n-1) * cal(n-2))%100;
    return a;
}
int main(){
    int n;
    scanf("%d",&n);
    printf("%d", cal(n));
    return 0;
}

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

함수 3 형성평가6  (0) 2022.02.06
함수 3 형성평가4 rev2  (0) 2022.02.06
함수 3 형성평가3  (0) 2022.02.06
함수 3 형성평가2  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01

JW 재귀함수

 

 

#include <bits/stdc++.h>
using namespace std;
//함수 3 형성평가3
int a, b;
int d[100];
int cal(int sum, int index){
    if(index > 3 || sum > b) return 0;
    
    if(index == 3 && sum == b){
        for(int i=0; i<a; i++){
            printf("%d ", d[i]);
        }
        printf("\n");
        return a;
    }


    for(int i=1; i<=6; i++){
        d[index] = i;
        cal(sum+i, index + 1);
    }
}
int main(){

    scanf("%d %d",&a, &b);
    cal(0, 0);
    return 0;
}

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

함수 3 형성평가4 rev2  (0) 2022.02.06
함수 3 형성평가4 rev.1  (0) 2022.02.06
함수 3 형성평가2  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01
문자열1 - 자가진단9  (0) 2022.01.19

이 ㅇ ㅎ 재귀함수

 

 

#include <bits/stdc++.h>
using namespace std;
//함수 3 형성평가2
int cal(int a){
    if(a==1 || a==2){
        printf("%d ", a);
        return a;
    }

    cal(a-2);
    printf("%d ", a);
    return 0;
}
int main(){
    int a;
    scanf("%d",&a);
    cal(a);
    return 0;
}

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

함수 3 형성평가4 rev.1  (0) 2022.02.06
함수 3 형성평가3  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01
문자열1 - 자가진단9  (0) 2022.01.19
함수3 - 자가진단3  (0) 2022.01.07

10828번: 스택 (acmicpc.net)

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

#include <bits/stdc++.h>
using namespace std;
//X정우 학생 
int main() {
   string cmd;
   int cnt, stack[10000] = {0,}, push;
   cin >> cnt;
   for (int i=0; i<cnt; i++) {
      cin >> cmd;
      if (cmd == "push") {
         cin >> push;
         for (int j=0; j<10000; j++) {
            if (stack[j] == 0) {
               stack[j] = push;
               break;
            }
         }
      }
      else if (cmd == "pop") {
         if (stack[0] == 0) {
            printf("-1\n");
         }
         else {
            for (int j=0; j<10000; j++) {
               if (stack[j] == 0) {
                  printf("%d\n", stack[j-1]);
                  stack[j-1] = 0;
                  break;
               }
            }
         }
      }
      else if (cmd == "size") {
         int cnt = 0;
         for (int j=0; j<10000; j++) {
            if (stack[j] != 0) {
               cnt++;
            }
            else {
               break;
            }
         }
         printf("%d\n", cnt);
      }
      else if (cmd == "empty") {
         if (stack[0] == 0) {
            printf("1\n");
         }
         else {
            printf("0\n");
         }
      }
      else if (cmd == "top") {
         if (stack[0] == 0) {
            printf("-1\n");
         }
         else {
            for (int j=0; j<10000; j++) {
               if (stack[j] == 0) {
                  printf("%d\n", stack[j-1]);
                  break;
               }
            }
         }
      }
   }
   
   return 0;
}

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

백준 소수 구하기 1929  (0) 2022.03.07
백준 토마토  (0) 2022.03.07
단어 뒤집기 2  (0) 2021.12.31
백준 : 가운데를 말해요 1655번  (0) 2020.05.10
BOJ 외판원 순회 2 - 10971번  (0) 2020.05.08

#include <bits/stdc++.h>
using namespace std;
#define INF 1e9

int n, m, start;
vector<pair<int, int>> graph[100001];
bool visited[100001];
int d[100001];

int getSmallestNode(){
    int min_value = INF;
    int index = 0;
    for(int i=1; i<=n; i++){
        if(d[i] < min_value && !visited[i]){
            min_value = d[i];
            index = i;
        }
    }
    return index;
}

void dijkstra(int start){
    priority_queue<pair<int, int> > pq;
    pq.push({0,start});
    d[start] = 0;

    if(d[now] < dist) continue;
    while(!pq.empty()){
        int dist = -pq.top().first;
        int now = pq.top().second;
        pq.pop();

        for(int j=0; j<graph[now].size(); j++){
            int cost_via_now = d[now] + graph[now][j].second;
            if(cost_via_now < d[graph[now][j].first]){
                d[graph[now][j].first] = cost_via_now;
                pq.push(make_pair(-cost_via_now, graph[now][j].first));
            }
        }
    }

}


int main()
{

    cin >> n >> m >> start;

    for(int i=0; i<m; i++){
        int a, b, c;
        cin >> a >> b >>c;
        graph[a].push_back({b,c});
    }

    fill_n(d, 100001, INF);

    dijkstra(start);

    for(int i=1; i<=n; i++){
        if(d[i] == INF){
            cout << "INFINITY" << "\n";
        }
        else{
            cout << d[i] << "\n";
        }

    }
    return 0;
}


/*
입력 예시
6 11
1
1 2 2
1 3 5
1 4 1
2 3 3
2 4 2
3 2 3
3 6 5
4 3 3
4 5 1
5 3 1
5 6 2
*/

'정보올림피아드-KOI > 알고리즘 트레이닝' 카테고리의 다른 글

[이코테] 시각  (0) 2021.01.24
[이코테] 왕실의 나이트  (0) 2021.01.24
[이코테] #게임개발 파이썬  (0) 2021.01.24
[이코테] 상하좌우  (0) 2021.01.24
[이코테] 이진탐색  (0) 2020.12.14

이코테 - 최단경로 

 

#include <bits/stdc++.h>
using namespace std;
#define INF 1e9

int n, m, start;
vector<pair<int, int>> graph[100001];
bool visited[100001];
int d[100001];

int getSmallestNode(){
    int min_value = INF;
    int index = 0;
    for(int i=1; i<=n; i++){
        if(d[i] < min_value && !visited[i]){
            min_value = d[i];
            index = i;
        }
    }
    return index;
}

void dijkstra(int start){
    d[start] = 0;
    visited[start] = true;
    for(int j=0; j<graph[start].size(); j++){
        d[graph[start][j].first] = graph[start][j].second;
    }

    for(int i=0; i<n-1; i++){
        int now = getSmallestNode();
        visited[now] = true;
        for(int j=0; j<graph[now].size(); j++){
            int cost_via_now = d[now] + graph[now][j].second;
            if(cost_via_now < d[graph[now][j].first]){
                d[graph[now][j].first] = cost_via_now;
            }
        }
    }
}


int main()
{
    cin >> n >> m >> start;

    for(int i=0; i<m; i++){
        int a, b, c;
        cin >> a >> b >>c;
        graph[a].push_back({b,c});
    }

    fill_n(d, 100001, INF);

    dijkstra(start);

    for(int i=1; i<=n; i++){
        if(d[i] == INF){
            cout << "INFINITY" << "\n";
        }
        else{
            cout << d[i] << "\n";
        }

    }
    return 0;
}


/*
입력 예시
6 11
1
1 2 2
1 3 5
1 4 1
2 3 3
2 4 2
3 2 3
3 6 5
4 3 3
4 5 1
5 3 1
5 6 2
*/

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

함수 3 형성평가3  (0) 2022.02.06
함수 3 형성평가2  (0) 2022.02.06
문자열1 - 자가진단9  (0) 2022.01.19
함수3 - 자가진단3  (0) 2022.01.07
머지 정렬 Merge Sort  (0) 2021.12.31
#include <bits/stdc++.h>
using namespace std;
//문자열1 - 자가진단9

int main() {
    string str;
    cin >> str;
    int len = str.size();
    for (int i = 0; i < len; i++) {
        for (int j = len-1; j > 0; j--) {
            swap(str[j], str[j-1]);
        }
        cout << str << "\n";
    }
    return 0;
}

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

함수 3 형성평가2  (0) 2022.02.06
최단 경로 - 다익스트라 - dijkstra  (0) 2022.02.01
함수3 - 자가진단3  (0) 2022.01.07
머지 정렬 Merge Sort  (0) 2021.12.31
머지 정렬 Merge Sort  (0) 2021.12.31

상동초 예비5학년 전승빈 학생입니다.

 

There once was a boy named Harry and he lived in a magical land named Cotata,

all the teens and adults had elemental powers like fire, water, wind, and earth. but

Harry was just a kid so he wasn't allowed to have any powers. but one day the 

ruler of Cotata came to Harry's house and told Harry he was the chosen one

to have all of the elemental powers. so when he was 16years old, he went to the

elemental academy and learned how to control his powers. but one day the enemy

of Cotata, Talba came to suck all the elemental powers out of the peoples who lived

in Cotata...

 

 

 

 

 

 

                                       to be continued...

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

int f(int n){
    if(n==0)
        return n;

    return n + f(n-1);
}
int main() {
    int n;
    cin >> n;
    int a = f(n);
    printf("%d", a);
    return 0;
}

X혁 학생의 단어뒤집기2 성공 코드

 

#include <bits/stdc++.h>
using namespace std;
//단어 뒤집기 2
int main()
{
    stack<char> k,l;
    string a;
    int i,j,b;
    getline(cin,a);
    b=a.size();
    for(i=0;i<b;i++){
        if(a[i]=='<'){
            k.push(a[i]);
            while(!l.empty()){
                cout << l.top();
                l.pop();
            }
            cout << "<";
        }
        if(a[i]=='>'){
            k.pop();
            cout << ">";
        }
         if(!k.empty()&&a[i]!='<'){

            cout << a[i];
        }
         if(k.empty()&&a[i]!='>'){
            l.push(a[i]);
        }
    }


    return 0;
}

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

백준 토마토  (0) 2022.03.07
스택 Stack  (0) 2022.02.04
백준 : 가운데를 말해요 1655번  (0) 2020.05.10
BOJ 외판원 순회 2 - 10971번  (0) 2020.05.08
백준 - 프린터 큐 : 1966번  (0) 2020.04.26

동빈나의 머지소트

 

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

int number = 8;
int sorted[8]; //정렬 배열은 받드시 전역 배열

void merge(int a[], int m, int middle, int n){ //m : 시작점, middle : 중간점, n : 끝점

    int i = m;
    int j = middle+1;
    int k = m;

    //작은 순서대로 배열에 삽입
    while(i <= middle && j <= n){
        if(a[i] <= a[j]){
            sorted[k] = a[i];
            i++;
        }
        else{
            sorted[k] = a[j];
            j++;
        }
        k++;
    }
    if(i > middle){
        for(int t = j; t<=n; t++){
            sorted[k] = a[t];
            k++;
        }
    }
    else{
        for(int t=i; t<=middle; t++){
            sorted[k] = a[t];
            k++;
        }
    }

    //sorted 에서 a배열로 옮겨준다
    for(int t=m; t<=n; t++){
        a[t] = sorted[t];
    }
}

void mergesort(int a[], int m, int n){
    //크기가 1보다 큰 경우
    if(m < n){
        int middle = (m+n)/2;
        mergesort(a, m, middle);
        mergesort(a, middle+1, n);
        merge(a,m, middle, n);
    }
}

int main()
{
    int array[8] = {7,6,5,8,3,5,9,1};
    mergesort(array, 0, number-1);
    for(int t=0; t<number; t++){
        printf("%d ", array[t]);
    }
    return 0;
}

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

문자열1 - 자가진단9  (0) 2022.01.19
함수3 - 자가진단3  (0) 2022.01.07
머지 정렬 Merge Sort  (0) 2021.12.31
quick sort (퀵정렬) - 내림차순  (0) 2021.12.31
함수3 - 형성평가6  (0) 2021.12.30

동빈나의 머지소트

 

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

int number = 8;
int sorted[8]; //정렬 배열은 받드시 전역 배열

void merge(int a[], int m, int middle, int n){ //m : 시작점, middle : 중간점, n : 끝점

    int i = m;
    int j = middle+1;
    int k = m;

    //작은 순서대로 배열에 삽입
    while(i <= middle && j <= n){
        if(a[i] <= a[j]){
            sorted[k] = a[i];
            i++;
        }
        else{
            sorted[k] = a[j];
            j++;
        }
        k++;
    }
    if(i > middle){
        for(int t = j; t<=n; t++){
            sorted[k] = a[t];
            k++;
        }
    }
    else{
        for(int t=i; t<=middle; t++){
            sorted[k] = a[t];
            k++;
        }
    }

    //sorted 에서 a배열로 옮겨준다
    for(int t=m; t<=n; t++){
        a[t] = sorted[t];
    }
}

void mergesort(int a[], int m, int n){
    //크기가 1보다 큰 경우
    if(m < n){
        int middle = (m+n)/2;
        mergesort(a, m, middle);
        mergesort(a, middle+1, n);
        merge(a,m, middle, n);
    }
}

int main()
{
    int array[8] = {7,6,5,8,3,5,9,1};
    mergesort(array, 0, number-1);
    for(int t=0; t<number; t++){
        printf("%d ", array[t]);
    }
    return 0;
}

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

함수3 - 자가진단3  (0) 2022.01.07
머지 정렬 Merge Sort  (0) 2021.12.31
quick sort (퀵정렬) - 내림차순  (0) 2021.12.31
함수3 - 형성평가6  (0) 2021.12.30
591 : 함수3 - 자가진단6  (0) 2021.12.30
#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=136&sca=10d0 

 

JUNGOL

 

www.jungol.co.kr

 

 

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

int rec(int mul, int n){
    if(n == 0)
        return mul;
    int t = n%10;
    if( t != 0){
        mul *= t;
    }
    return rec(mul, n/10);
}
int main() {
    int a,b,c;
    cin >> a >> b >> c;
    int n = a * b * c;

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

    return 0;
}

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

머지 정렬 Merge Sort  (0) 2021.12.31
quick sort (퀵정렬) - 내림차순  (0) 2021.12.31
591 : 함수3 - 자가진단6  (0) 2021.12.30
590 : 함수3 - 자가진단5  (0) 2021.12.30
592 : 함수3 - 자가진단4  (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=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;
}

[ 접속사 if ]

▷ 부사절을 이끄는 조건의 접속사if

 

: 만약 ~라면

: If + 주어 + 동사의 현재형, 주어+ 조동사(will,can,may) + 동사원형

=주어+ 조동사(will,can,may) + 동사원형 + If + 주어 + 동사의 현재형

 

 

★ if절의 해석이 미래의 의미일지라도 동사는 현재형으로 써준다.

   주절의 의미가 미래라면 미래를 나타내는 조동사will 을 써준다.

 

E.g) If it snows, I will make a snowman.

E.g) You won't be late for school if you get up early tomorrow.

 

▷ 명사절을 이끄는 접속사if

: ~인지 아닌지

: 주어 + 동사 + 목적어 (if /whether+ 주어 + 동사)

: 주어(wheather + 주어 + 동사) + 동사 ~

: 주어 + 동사 + 보어(whether + 주어 + 동사)

: 주로 know, wonder, be sure, ask 등의 동사 다음의 목적어로만 쓰인다.

: if

: if 대신 whether 와 바꿔 쓸수 있다. 

: (whether + 주어 + 동사) 는 주어, 목적어, 보어로 모두 사용가능하다.

 

E.g) I don't know if(whether) they're coming.

E.g) Did you know if(whether) he was cooking?

E.g) I wonder if(whether) she will buy it

E.g) Whether you believe me or not is important.

 

 

 

 

 

#미로탈출 
from collections import deque
def BFS(graph, a,b,cnt):
  dx=[0,1,0,-1]
  dy=[1,0,-1,0]
  queue=deque()
  queue.append((a,b))
  graph[a][b]=1
  while queue:
    x,y=queue.popleft()
    for i in range(4):
      nx=x+dx[i]
      ny=y+dy[i]
      if(nx>=0 and ny>=0 and nx<n and ny<m):
        if graph[nx][ny]==1:
          graph[nx][ny]=graph[x][y]+1
          queue.append((nx,ny))

n,m=map(int, input().split())
graph=[]
for i in range(n):
  graph.append(list(map(int, input())))
BFS(graph,0,0,1)
print(graph[n-1][m-1])

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

592 : 함수3 - 자가진단4  (0) 2021.12.30
589 : 함수3 - 자가진단3  (0) 2021.12.30
음료수 얼려먹기 - 파이썬  (0) 2021.02.04
BFS - 파이썬  (0) 2021.02.04
DFS - 인접 리스트  (0) 2021.02.04
#음료수 얼려먹기
def DFS(graph,x,y):
  dx=[0,1,0,-1]
  dy=[1,0,-1,0]
  graph[x][y]=1
  for i in range(4):
    if(x+dx[i]>=0 and y+dy[i]>=0 and x+dx[i]<n and y+dy[i]<m):
      if graph[x+dx[i]][y+dy[i]]==0:
        graph[x+dx[i]][y+dy[i]]=1
        DFS(graph,x+dx[i],y+dy[i])


n,m=map(int,input().split())
graph = []
cnt=0
for i in range(n):
  graph.append(list(map(int, input())))
for i in range(n):
  for j in range(m):
    if(graph[i][j]==0):
      cnt+=1
      DFS(graph,i,j)
print(cnt)

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

589 : 함수3 - 자가진단3  (0) 2021.12.30
미로탈출 - 파이썬  (0) 2021.02.04
BFS - 파이썬  (0) 2021.02.04
DFS - 인접 리스트  (0) 2021.02.04
1337 : 달팽이삼각형  (0) 2021.02.02
#BFS

from collections import deque

def BFS(graph,v,vi,r):
  queue=deque()
  queue.append(v)
  while(queue):
    k=queue.popleft()
    r.append(k)
    for i in range(len(graph[k])):
      if vi[graph[k][i]]==False:
        #r.append(graph[k][i])
        vi[graph[k][i]]=True
        queue.append(graph[k][i])


r=[]
graph = [
  [],
  [2,3,8],
  [1,7],
  [1,4,5],
  [3,5],
  [3,4],
  [7],
  [2,6,8],
  [1,7]
]

vi=[False]*9
vi[1]=True
BFS(graph, 1,vi,r)
print(r)

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

미로탈출 - 파이썬  (0) 2021.02.04
음료수 얼려먹기 - 파이썬  (0) 2021.02.04
DFS - 인접 리스트  (0) 2021.02.04
1337 : 달팽이삼각형  (0) 2021.02.02
2071 : 파스칼 삼각형  (0) 2021.01.26

+ Recent posts