초급) 백준 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