2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법/실전문제풀어보기

문자열 구현

파아란기쁨1 2021. 5. 15. 16:19
반응형

초급) 백준 1264 : 모음갯수 - https://www.acmicpc.net/problem/1264

 

초급)1921 : Parsing real number - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1194&sca=99 

초급) 1957 : 글자 줄여나가기 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1230&sca=99&page=10 

초급) 1973 : 알파벳 개수 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1246&sca=99&page=10 

초급) 1980 : 문자열 암호화 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1253&sca=99&page=10 

초급) 9375 패션왕 신해빈 - https://www.acmicpc.net/problem/9375

초급) 2027 : 변수명 바꾸기 - https://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1300&sca=99&page=11 

초급)  2033 : 인코딩 - https://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1306&sca=99&page=11 

초급) 2034 : 반지 (Ring) - https://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1307&sca=99&page=11 

초급) 2117 : 야바위 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1379&sca=99&page=11 

초급) 2140 : 빈도조사 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1402&sca=99&page=12 

중급) 2154 : 화살표 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1415&sca=99&page=12 

중급)  1990 : 2진수 더하기  - https://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1263&sca=99

중급)1548 단어 줄이기  - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=820&sca=99

더보기

 

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>

using namespace std;

struct Data{
    char name[101];
    int num;
    char shortname[101];
} D[110];

bool cmp1(struct Data l,struct Data r)
{
    return strcmp(l.name,r.name) < 0;
}
bool cmp2(struct Data l,struct Data r)
{
    return l.num < r.num;
}

int cmpLenCheck(char st1[],char st2[])
{
    int len1 = strlen(st1);
    int len2 = strlen(st2);

    for(int i=0;i<len1;i++)
    {
        if(st1[i]!=st2[i]) return i;
    }
    return len1;
}

int main()
{
    freopen("input.txt","r",stdin);
    int n;
    cin >> n;

    for(int i=0;i<n;i++)
    {
        cin >>D[i].name;
        D[i].num=i;
    }

    sort(D,D+n,cmp1);

    int cmplen=0;
    int prelen;
    for(int i=0;i<n-1;i++)
    {
        prelen = cmplen;
        cmplen = cmpLenCheck(D[i].name,D[i+1].name);
        strncpy(D[i].shortname,D[i].name,max(prelen,cmplen)+1);
    }
    prelen = cmplen;
    cmplen = cmpLenCheck(D[n-1].name,D[n-2].name);
    strncpy(D[n-1].shortname,D[n-1].name,max(prelen,cmplen)+1);
    sort(D,D+n,cmp2);
    for(int i=0;i<n;i++)
    {
        cout << D[i].name << " " << D[i].shortname << "\n";
    }

    return 0;
}

 

중급) 백준 14891 톱니바퀴 - https://www.acmicpc.net/problem/14891

 

 

중급) 1023 : 포커 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=302&sca=be40

고급] 3115 : 긴 자리 나눗셈 - http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2397&sca=4091 

반응형

'프로그래밍언어문법 > 실전문제풀어보기' 카테고리의 다른 글

반복문 구현 문제  (0) 2021.05.25
삽입정렬 문제  (0) 2021.05.24
수학문제  (0) 2021.05.24
기하문제  (0) 2021.05.20
트리관련 문제  (0) 2021.05.20