티스토리 뷰

[1285] : 아름이의 돌 던지기

#include <iostream>
#include <vector>

using namespace std;

vector<int> distAns;
vector<int> cntAns;
void printAnswer(int); // output
int getDistance(int*, int);
int getCount(int*, int, int);

int main(void){
    int testCase;
    cin >> testCase;
    for(int test = 0; test < testCase; test++){
        int N, closeDistance;
        cin >> N;
        int * dist = new int[N];
        for(int i = 0; i < N; i++){
            cin >> dist[i];
            if(dist[i] < 0) // 음수 쪽에 떨어진 사람도 거리는 같으니까
                dist[i] *= -1;
        }
        closeDistance = getDistance(dist, N);
        distAns.push_back(closeDistance);
        cntAns.push_back(getCount(dist, N, closeDistance));
    }
    printAnswer(testCase);
    return 0;
}

int getDistance(int * distance, int N){
    int min = 100000;
    for(int i = 0; i < N; i++)
        if(min > distance[i])
            min = distance[i];
    return min;
}

int getCount(int * distance, int N, int minDist){
    int cnt = 0;
    for(int i = 0; i < N; i++)
        if(minDist == distance[i])
            cnt++;
    return cnt;
}

void printAnswer(int testCase){
    for(int i = 0; i < testCase; i++)
        cout << "#" << i + 1 << " " << distAns[i ]<< " " << cntAns[i] << endl;
}

[1288]  : 새로운 불면증 치료법

#include <iostream>
#include <vector>
#include <string>

using namespace std;

vector<string> answer;
string getNum(int);
void printAnswer(int); // output


int main(void){
    int testCase;
    cin >> testCase;
    for(int test = 0; test < testCase; test++){
        int N;
        cin >> N;
        answer.push_back(getNum(N));
    }
    printAnswer(testCase);
    return 0;
}

string getNum(int N){
    int arr[10] = {0,}, countN = 0;
    int copyN = N;
    string strN;
    while(1){
        countN++;
        N = copyN * countN;
        strN = to_string(N);
        unsigned long lenNum = strN.size();
        for(int i = 0; i < lenNum; i++)
            arr[strN[i] - '0']++;
        // check if all are shown
        int check;
        for(check = 0; check < 10; check++)
            if(arr[check] == 0)
                break;
        if(check == 10) break;
    }
    return strN;
}

void printAnswer(int testCase){
    for(int i = 0; i < testCase; i++)
        cout << "#" << i + 1 << " " << answer[i] << endl;
}

[1976] : 시각 덧셈

#include <iostream>
#include <vector>

using namespace std;

vector<int> hr;
vector<int> mn;
void printAnswer(int); // output


int main(void){
    int testCase;
    cin >> testCase;
    for(int test = 0; test < testCase; test++){
        int H, M, h1, m1, h2, m2;
        cin >> h1 >> m1 >> h2 >> m2;
        H = h1 + h2;
        M = m1 + m2;
        if(m1 + m2 > 59){
            H += 1;
            M -= 60;
        }
        if(H > 11) H -= 12;
        hr.push_back(H); mn.push_back(M);
    }
    printAnswer(testCase);
    return 0;
}


void printAnswer(int testCase){
    for(int i = 0; i < testCase; i++)
        cout << "#" << i + 1 << " " << hr[i] << " " << mn[i] << endl;
}

[1945] : 간단한 소인수분해

#include <iostream>
#include <vector>

using namespace std;

int N;
int primeCnt(int);
vector<int> answer;
void printAnswer(int); // output


int main(void){
    int testCase;
    cin >> testCase;
    for(int test = 0; test < testCase; test++){
        int a = 0, b = 0, c = 0, d =  0, e = 0;
        cin >> N;
        e = primeCnt(11);
        d = primeCnt(7);
        c = primeCnt(5);
        b = primeCnt(3);
        a = primeCnt(2);
        answer.push_back(a);
        answer.push_back(b);
        answer.push_back(c);
        answer.push_back(d);
        answer.push_back(e);
    }
    printAnswer(testCase);
    return 0;
}

int primeCnt(int prime){
    int cnt = 0;
    while(1){
        if(N % prime != 0) break;
        N /= prime;
        cnt++;
    }
    return cnt;
}

void printAnswer(int testCase){
    for(int i = 0, cnt = 0; cnt < testCase ; i += 5, cnt++){
        cout << "#" << cnt + 1 << " ";
        for(int j = i; j < i + 5; j++)
            cout << answer[j] << " ";
        cout << endl;
    }
}

 

'CS > 알고리즘' 카테고리의 다른 글

[SWEA] D2 : 1970, 1979, 1974, 1983  (0) 2019.06.16
[SWEA] D2 : 1859, 1948, 1959, 1966  (0) 2019.06.16
[SWEA] D2 : 1986, 1984, 1204, 1284  (0) 2019.06.15
[SWEA] D2 : 1926, 1989, 2005, 2007  (0) 2019.06.15
[SWEA] D1 : 1545, 1933, 1936, 2019  (0) 2019.06.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함