알고리즘 기초 세미나 w.2

한정화·2023년 4월 2일
0

#230402 일


1. 배열

i번째 원소를 상수 시간에 접근 가능

1) 10818번

나 :

int num;
int arr[1000000];

int main(){
    cin>>num;
    for(int i=0;i<num;i++){
        cin>>arr[i];
    }
    
    int max = arr[0];
    int min = arr[0];
    
    for(int i=1;i<num;i++){
        if(arr[i] > max) max = arr[i];
        if(arr[i] < min) min = arr[i];
    }
    
    cout<<min<<' '<<max;
}

풀이 :
아싸 맞음~

2) 2562번

나 :

#include <iostream>
using namespace std;
int arr[10];
int maxValue = 0;
int maxidx = -1;

int main(){
    for(int i=0;i<9;i++){
        cin>>arr[i];
        if(arr[i] > maxValue){
            maxValue=arr[i];
            maxidx = i;
        }
    }
    cout<<maxValue<<'\n'<<maxidx+1;
}

풀이 :
굿

3) 5597번

나 :

#include <iostream>
using namespace std;
bool submitted[31]={false,};

int main(){
    int tmp;
    
    for(int i=1;i<=28;i++){
        cin>>tmp;
        submitted[tmp] = true;
    }
    
    for(int i=1;i<=30;i++){
        if(!submitted[i]) cout<<i<<'\n';
    }
}

풀이 :
굿

4) 가장 긴 연속된 길이

#include <iostream>
#include <vector>
using namespace std;
int num;
int inputArray[100];
int maxLen=1;
int curLen=1; 

int main(){
    cin>>num;
    cin>>inputArray[0];
    for(int i=1;i<num;i++){
        cin>>inputArray[i];
        if(inputArray[i]==inputArray[i-1]) curLen++;
        else if(curLen>maxLen){
            maxLen = curLen; 
            curLen = 1;
        }
    }
    cout<<maxLen;
}

5) 연속된 수는 합치기

#include <iostream>
#include <vector>
using namespace std;
vector<int> answerArray;
int inputArray[100];
int num;

int main(){
    cin>>num;
    cin>>inputArray[0];
    answerArray.push_back(inputArray[0]);
    
    for(int i=1;i<num;i++){
        cin>>inputArray[i];
        if(inputArray[i]!=inputArray[i-1]) answerArray.push_back(inputArray[i]);
    }
    
    for(int i=0;i<answerArray.size();i++){
        cout<<answerArray[i]<<' ';
    }
    
}


2. 문자열과 아스키코드

1)

0개의 댓글